Title: [235899] trunk/JSTests
Revision
235899
Author
[email protected]
Date
2018-09-11 10:43:27 -0700 (Tue, 11 Sep 2018)

Log Message

Test for incorrect check in emitPutDerivedConstructorToArrowFunctionContextScope.
https://bugs.webkit.org/show_bug.cgi?id=169445
<rdar://problem/30957435>

Reviewed by Saam Barati.

* stress/regress-169445.js: Added.
(let.gun.eval.A):
(let.gun.eval.B.C):
(let.gun.eval.B.C.prototype.trigger):
(let.gun.eval.B.C.prototype.triggerWithRestParameters):
(let.gun.eval.B):
(let.gun.eval):

Modified Paths

Added Paths

Diff

Modified: trunk/JSTests/ChangeLog (235898 => 235899)


--- trunk/JSTests/ChangeLog	2018-09-11 17:42:28 UTC (rev 235898)
+++ trunk/JSTests/ChangeLog	2018-09-11 17:43:27 UTC (rev 235899)
@@ -1 +1,17 @@
+2018-09-11  Mark Lam  <[email protected]>
+
+        Test for incorrect check in emitPutDerivedConstructorToArrowFunctionContextScope.
+        https://bugs.webkit.org/show_bug.cgi?id=169445
+        <rdar://problem/30957435>
+
+        Reviewed by Saam Barati.
+
+        * stress/regress-169445.js: Added.
+        (let.gun.eval.A):
+        (let.gun.eval.B.C):
+        (let.gun.eval.B.C.prototype.trigger):
+        (let.gun.eval.B.C.prototype.triggerWithRestParameters):
+        (let.gun.eval.B):
+        (let.gun.eval):
+
 == Rolled over to ChangeLog-2018-09-11 ==

Added: trunk/JSTests/stress/regress-169445.js (0 => 235899)


--- trunk/JSTests/stress/regress-169445.js	                        (rev 0)
+++ trunk/JSTests/stress/regress-169445.js	2018-09-11 17:43:27 UTC (rev 235899)
@@ -0,0 +1,44 @@
+let args = new Array(0x10000);
+args.fill();
+args = args.map((_, i) => 'a' + i).join(', ');
+
+let gun = eval(`(function () {
+    class A {
+
+    }
+
+    class B extends A {
+        constructor(${args}) {
+            () => {
+                ${args};
+                super();
+            };
+
+            class C {
+                constructor() {
+                }
+
+                trigger() {
+                    (() => {
+                        super.x;
+                    })();
+                }
+
+                triggerWithRestParameters(...args) {
+                    (() => {
+                        super.x;
+                    })();
+                }
+            }
+
+            return new C();
+        }
+    }
+
+    return new B();
+})()`);
+
+for (let i = 0; i < 0x10000; i++) {
+    gun.trigger();
+    gun.triggerWithRestParameters(1, 2, 3);
+}
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to