Title: [197181] trunk/Source/_javascript_Core
- Revision
- 197181
- Author
- [email protected]
- Date
- 2016-02-26 10:51:08 -0800 (Fri, 26 Feb 2016)
Log Message
[JSC] Add the test for r197155
https://bugs.webkit.org/show_bug.cgi?id=154715
Reviewed by Mark Lam.
Silly me. I forgot the test in the latest patch update.
* tests/stress/class-syntax-tdz-osr-entry-in-loop.js: Added.
Modified Paths
Added Paths
Diff
Modified: trunk/Source/_javascript_Core/ChangeLog (197180 => 197181)
--- trunk/Source/_javascript_Core/ChangeLog 2016-02-26 18:44:17 UTC (rev 197180)
+++ trunk/Source/_javascript_Core/ChangeLog 2016-02-26 18:51:08 UTC (rev 197181)
@@ -1,3 +1,14 @@
+2016-02-26 Benjamin Poulain <[email protected]>
+
+ [JSC] Add the test for r197155
+ https://bugs.webkit.org/show_bug.cgi?id=154715
+
+ Reviewed by Mark Lam.
+
+ Silly me. I forgot the test in the latest patch update.
+
+ * tests/stress/class-syntax-tdz-osr-entry-in-loop.js: Added.
+
2016-02-26 Yusuke Suzuki <[email protected]>
[DFG] Drop unnecessary proved type branch in ToPrimitive
Added: trunk/Source/_javascript_Core/tests/stress/class-syntax-tdz-osr-entry-in-loop.js (0 => 197181)
--- trunk/Source/_javascript_Core/tests/stress/class-syntax-tdz-osr-entry-in-loop.js (rev 0)
+++ trunk/Source/_javascript_Core/tests/stress/class-syntax-tdz-osr-entry-in-loop.js 2016-02-26 18:51:08 UTC (rev 197181)
@@ -0,0 +1,58 @@
+
+class A {
+ constructor() { }
+}
+
+class B extends A {
+ constructor(iterationCount) {
+ let values = [];
+
+ for (let i = 2; i < iterationCount; ++i) {
+ // Let's keep the loop busy.
+ let divided = false;
+ for (let j = i - 1; j > 1; --j) {
+ if (!(i % j)) {
+ divided = true;
+ break;
+ }
+ }
+ if (!divided)
+ values.push(i);
+
+ if (!(i % (iterationCount - 2)))
+ print(this);
+ else if (values.length == iterationCount)
+ super(values);
+ }
+ }
+}
+
+noInline(B);
+
+// Small warm up with small iteration count. Try to get to DFG.
+for (var i = 0; i < 30; ++i) {
+ var exception = null;
+ try {
+ new B(10);
+ } catch (e) {
+ exception = e;
+ if (!(e instanceof ReferenceError))
+ throw "Exception thrown in iteration " + i + " was not a reference error";
+ }
+ if (!exception)
+ throw "Exception not thrown for an unitialized this at iteration " + i;
+}
+
+// Now try to go to FTL in the constructor.
+for (var i = 0; i < 2; ++i) {
+ var exception = null;
+ try {
+ new B(7e3);
+ } catch (e) {
+ exception = e;
+ if (!(e instanceof ReferenceError))
+ throw "Exception thrown in iteration " + i + " was not a reference error";
+ }
+ if (!exception)
+ throw "Exception not thrown for an unitialized this at iteration " + i;
+}
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes