ES6 Class syntax. Invoking method of parent class in constructor before super() lead...
authorcommit-queue@webkit.org <commit-queue@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sat, 26 Mar 2016 07:08:21 +0000 (07:08 +0000)
committercommit-queue@webkit.org <commit-queue@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sat, 26 Mar 2016 07:08:21 +0000 (07:08 +0000)
https://bugs.webkit.org/show_bug.cgi?id=152108

Patch by Joseph Pecoraro <pecoraro@apple.com> on 2016-03-26
Reviewed by Ryosuke Niwa.

* js/arrowfunction-superproperty-expected.txt:
* js/script-tests/arrowfunction-superproperty.js:
* js/script-tests/class-syntax-name.js:
* js/script-tests/class-syntax-string-and-numeric-names.js:
Remove stale FIXMEs from LayoutTests where the bugs have been fixed.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@198714 268f45cc-cd09-0410-ab3c-d52691b4dbfc

LayoutTests/ChangeLog
LayoutTests/js/arrowfunction-superproperty-expected.txt
LayoutTests/js/script-tests/arrowfunction-superproperty.js
LayoutTests/js/script-tests/class-syntax-name.js
LayoutTests/js/script-tests/class-syntax-string-and-numeric-names.js

index 8387be2..b11aebd 100644 (file)
@@ -1,3 +1,16 @@
+2016-03-26  Joseph Pecoraro  <pecoraro@apple.com>
+
+        ES6 Class syntax. Invoking method of parent class in constructor before super() lead to crash
+        https://bugs.webkit.org/show_bug.cgi?id=152108
+
+        Reviewed by Ryosuke Niwa.
+
+        * js/arrowfunction-superproperty-expected.txt:
+        * js/script-tests/arrowfunction-superproperty.js:
+        * js/script-tests/class-syntax-name.js:
+        * js/script-tests/class-syntax-string-and-numeric-names.js:
+        Remove stale FIXMEs from LayoutTests where the bugs have been fixed.
+
 2016-03-25  Joseph Pecoraro  <pecoraro@apple.com>
 
         Date.prototype.toLocaleDateString uses overridable Object.create
index 5f726cb..9acb7ef 100644 (file)
@@ -5,6 +5,7 @@ On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE
 
 PASS (new B()).getValueParentFunction() is expectedValue
 PASS (new C(false)).value is expectedValue
+PASS (new C(true)) threw exception ReferenceError: Cannot access uninitialized variable..
 PASS E.getParentStaticValue() is expectedValue
 PASS f.prop is expectedValue + "-" + expectedValue
 PASS f.prop is expectedValue + "-" + "new-value"
index 5b26fff..7e72caa 100644 (file)
@@ -77,9 +77,7 @@ shouldBe('(new B()).getValueParentFunction()', 'expectedValue');
 
 shouldBe('(new C(false)).value', 'expectedValue');
 
-// FIXME: Problem with access to the super before super() in constructor
-// https://bugs.webkit.org/show_bug.cgi?id=152108
-//shouldThrow('(new C(true))', 'ReferenceError');
+shouldThrow('(new C(true))', '"ReferenceError: Cannot access uninitialized variable."');
 
 shouldBe('E.getParentStaticValue()', 'expectedValue');
 
index 8c26e37..105441d 100644 (file)
@@ -119,7 +119,7 @@ runTestShouldBeTrue("var VarA = class A { constructor() {} }; var VarB = class B
 runTestShouldBeTrue("var VarA = class A { constructor() {} }; var VarB = class B extends VarA { constructor() { super(); this.base = VarA; this.derived = B; this.derivedVar = VarB; } }; (new VarB).derived === VarB");
 runTestShouldBeTrue("var VarA = class A { constructor() {} }; var VarB = class B extends VarA { constructor() { super(); this.base = VarA; this.derived = B; this.derivedVar = VarB; } }; (new VarB).derivedVar === VarB");
 
-// FIXME: Class statement binding should be like `let`, not `var`.
+// Class statement binding should be like `let`.
 debug(''); debug('Class statement binding in other circumstances');
 runTestShouldThrow("var result = A; result");
 runTestShouldThrow("var result = A; class A {}; result");
index 6ed305b..ac81889 100644 (file)
@@ -33,7 +33,6 @@ shouldBe("class A { get 0() { return 20; } }; A[0]", "undefined");
 shouldBe("class A { static get 1() { return 21; } }; A[1]", "21");
 shouldBe("class A { static get 1() { return 21; } }; (new A)[1]", "undefined");
 
-// FIXME: This test case fails due to webkit.org/b/144252.
 shouldBe("setterValue = 0; X = class { set 2(x) { setterValue = x; } }; (new X)[2] = 22; setterValue", "22");
 shouldBe("X[2] = 23; setterValue", "22");
 
@@ -43,7 +42,6 @@ shouldBe("(new X)[3] = 23; setterValue", "23");
 shouldBe("X = class { get 4() { return 24 } set 4(x) { } }; x = new X; x[4]", "24");
 shouldBe("X[4]", "undefined");
 
-// FIXME: This test case fails due to webkit.org/b/144252.
 shouldBe("setterValue = 0; X = class { get 5() { } set 5(x) { setterValue = x; } }; (new X)[5] = 25; setterValue", "25");
 shouldBe("X[5] = 26; setterValue", "25");