Add a few more tests for Class names
authorcommit-queue@webkit.org <commit-queue@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 25 Mar 2015 22:41:04 +0000 (22:41 +0000)
committercommit-queue@webkit.org <commit-queue@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 25 Mar 2015 22:41:04 +0000 (22:41 +0000)
https://bugs.webkit.org/show_bug.cgi?id=143060

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

Add a few more class name tests:
- const class name binding inside class expression
- mutable class name binding from class statement

* js/script-tests/class-syntax-name.js:

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

LayoutTests/ChangeLog
LayoutTests/js/class-syntax-name-expected.txt
LayoutTests/js/script-tests/class-syntax-name.js

index ae48753..bcd79fb 100644 (file)
@@ -1,5 +1,18 @@
 2015-03-25  Joseph Pecoraro  <pecoraro@apple.com>
 
+        Add a few more tests for Class names
+        https://bugs.webkit.org/show_bug.cgi?id=143060
+
+        Reviewed by Ryosuke Niwa.
+
+        Add a few more class name tests:
+        - const class name binding inside class expression
+        - mutable class name binding from class statement
+
+        * js/script-tests/class-syntax-name.js:
+
+2015-03-25  Joseph Pecoraro  <pecoraro@apple.com>
+
         ES6: Classes: Program level class statement throws exception in strict mode
         https://bugs.webkit.org/show_bug.cgi?id=143038
 
index 7f1903a..37828f2 100644 (file)
@@ -110,6 +110,10 @@ PASS var result = A; result threw exception ReferenceError: Can't find variable:
 PASS 'use strict'; var result = A; result threw exception ReferenceError: Can't find variable: A.
 FAIL var result = A; class A {}; result should throw an exception. Was undefined.
 FAIL 'use strict'; var result = A; class A {}; result should throw an exception. Was undefined.
+PASS class A { constructor() { A = 1; } }; new A threw exception TypeError: Attempted to assign to readonly property..
+PASS 'use strict'; class A { constructor() { A = 1; } }; new A threw exception TypeError: Attempted to assign to readonly property..
+PASS class A { constructor() { } }; A = 1; A is 1
+PASS 'use strict'; class A { constructor() { } }; A = 1; A is 1
 PASS class A {}; var result = A; result did not throw exception.
 PASS 'use strict'; class A {}; var result = A; result did not throw exception.
 PASS eval('var Foo = 10'); Foo is 10
index 516e502..561a617 100644 (file)
@@ -81,6 +81,8 @@ runTestShouldBeTrue("var VarA = class A { constructor() {} }; var VarB = class B
 debug(''); debug('Class statement binding in other circumstances');
 runTestShouldThrow("var result = A; result");
 runTestShouldThrow("var result = A; class A {}; result");
+runTestShouldThrow("class A { constructor() { A = 1; } }; new A");
+runTestShouldBe("class A { constructor() { } }; A = 1; A", "1");
 runTestShouldNotThrow("class A {}; var result = A; result");
 shouldBe("eval('var Foo = 10'); Foo", "10");
 shouldThrow("'use strict'; eval('var Foo = 10'); Foo");