OLD | NEW |
---|---|
(Empty) | |
1 Tests for ES6 class name semantics in class statements and expressions | |
2 | |
3 On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE ". | |
4 | |
5 | |
6 Class statement | |
7 PASS A threw exception ReferenceError: A is not defined. | |
8 PASS 'use strict'; A threw exception ReferenceError: A is not defined. | |
9 PASS class {} threw exception SyntaxError: Unexpected token {. | |
10 PASS 'use strict'; class {} threw exception SyntaxError: Unexpected token {. | |
11 PASS class { constructor() {} } threw exception SyntaxError: Unexpected token {. | |
12 PASS 'use strict'; class { constructor() {} } threw exception SyntaxError: Unexp ected token {. | |
13 PASS class A { constructor() {} } did not throw exception. | |
14 PASS 'use strict'; class A { constructor() {} } did not throw exception. | |
15 PASS class A { constructor() {} }; A.toString() is 'class A { constructor() {} } ' | |
16 PASS 'use strict'; class A { constructor() {} }; A.toString() is 'class A { cons tructor() {} }' | |
17 PASS class A { constructor() {} }; (new A) instanceof A is true | |
18 PASS 'use strict'; class A { constructor() {} }; (new A) instanceof A is true | |
19 PASS class A { constructor() { this.base = A; } }; (new A).base.toString() is 'c lass A { constructor() { this.base = A; } }' | |
20 PASS 'use strict'; class A { constructor() { this.base = A; } }; (new A).base.to String() is 'class A { constructor() { this.base = A; } }' | |
21 PASS class A { constructor() {} }; class B extends A {}; did not throw exception . | |
22 PASS 'use strict'; class A { constructor() {} }; class B extends A {}; did not t hrow exception. | |
23 PASS class A { constructor() {} }; class B extends A { constructor() {} }; B.toS tring() is 'class B extends A { constructor() {} }' | |
24 PASS 'use strict'; class A { constructor() {} }; class B extends A { constructor () {} }; B.toString() is 'class B extends A { constructor() {} }' | |
25 PASS class A { constructor() {} }; class B extends A {}; (new B) instanceof A is true | |
26 PASS 'use strict'; class A { constructor() {} }; class B extends A {}; (new B) i nstanceof A is true | |
27 PASS class A { constructor() {} }; class B extends A {}; (new B) instanceof B is true | |
28 PASS 'use strict'; class A { constructor() {} }; class B extends A {}; (new B) i nstanceof B is true | |
29 PASS class A { constructor() {} }; class B extends A { constructor() { super(); this.base = A; this.derived = B; } }; (new B).base.toString() is 'class A { cons tructor() {} }' | |
30 PASS 'use strict'; class A { constructor() {} }; class B extends A { constructor () { super(); this.base = A; this.derived = B; } }; (new B).base.toString() is ' class A { constructor() {} }' | |
31 PASS class A { constructor() {} }; class B extends A { constructor() { super(); this.base = A; this.derived = B; } }; (new B).derived.toString() is 'class B ext ends A { constructor() { super(); this.base = A; this.derived = B; } }' | |
32 PASS 'use strict'; class A { constructor() {} }; class B extends A { constructor () { super(); this.base = A; this.derived = B; } }; (new B).derived.toString() i s 'class B extends A { constructor() { super(); this.base = A; this.derived = B; } }' | |
33 | |
34 Class expression | |
35 PASS A threw exception ReferenceError: A is not defined. | |
36 PASS 'use strict'; A threw exception ReferenceError: A is not defined. | |
37 PASS (class {}) did not throw exception. | |
38 PASS 'use strict'; (class {}) did not throw exception. | |
39 PASS (class { constructor(){} }) did not throw exception. | |
40 PASS 'use strict'; (class { constructor(){} }) did not throw exception. | |
41 PASS typeof (class {}) is "function" | |
42 PASS 'use strict'; typeof (class {}) is "function" | |
43 PASS (class A {}) did not throw exception. | |
44 PASS 'use strict'; (class A {}) did not throw exception. | |
45 PASS typeof (class A {}) is "function" | |
46 PASS 'use strict'; typeof (class A {}) is "function" | |
47 PASS (class A {}); A threw exception ReferenceError: A is not defined. | |
48 PASS 'use strict'; (class A {}); A threw exception ReferenceError: A is not defi ned. | |
49 PASS new (class A {}) did not throw exception. | |
50 PASS 'use strict'; new (class A {}) did not throw exception. | |
51 PASS typeof (new (class A {})) is "object" | |
52 PASS 'use strict'; typeof (new (class A {})) is "object" | |
53 PASS (new (class A { constructor() { this.base = A; } })).base did not throw exc eption. | |
54 PASS 'use strict'; (new (class A { constructor() { this.base = A; } })).base did not throw exception. | |
55 PASS (new (class A { constructor() { this.base = A; } })).base.toString() is "cl ass A { constructor() { this.base = A; } }" | |
56 PASS 'use strict'; (new (class A { constructor() { this.base = A; } })).base.toS tring() is "class A { constructor() { this.base = A; } }" | |
57 PASS class A {}; (class B extends A {}) did not throw exception. | |
58 PASS 'use strict'; class A {}; (class B extends A {}) did not throw exception. | |
59 PASS class A {}; (class B extends A {}); B threw exception ReferenceError: B is not defined. | |
60 PASS 'use strict'; class A {}; (class B extends A {}); B threw exception Referen ceError: B is not defined. | |
61 PASS class A {}; new (class B extends A {}) did not throw exception. | |
62 PASS 'use strict'; class A {}; new (class B extends A {}) did not throw exceptio n. | |
63 PASS class A {}; new (class B extends A { constructor() { super(); this.base = A ; this.derived = B; } }) did not throw exception. | |
64 PASS 'use strict'; class A {}; new (class B extends A { constructor() { super(); this.base = A; this.derived = B; } }) did not throw exception. | |
65 PASS class A {}; (new (class B extends A { constructor() { super(); this.base = A; this.derived = B; } })) instanceof A is true | |
66 PASS 'use strict'; class A {}; (new (class B extends A { constructor() { super() ; this.base = A; this.derived = B; } })) instanceof A is true | |
67 PASS class A { constructor() {} }; (new (class B extends A { constructor() { sup er(); this.base = A; this.derived = B; } })).base.toString() is 'class A { const ructor() {} }' | |
68 PASS 'use strict'; class A { constructor() {} }; (new (class B extends A { const ructor() { super(); this.base = A; this.derived = B; } })).base.toString() is 'c lass A { constructor() {} }' | |
69 PASS class A { constructor() {} }; (new (class B extends A { constructor() { sup er(); this.base = A; this.derived = B; } })).derived.toString() is 'class B exte nds A { constructor() { super(); this.base = A; this.derived = B; } }' | |
70 PASS 'use strict'; class A { constructor() {} }; (new (class B extends A { const ructor() { super(); this.base = A; this.derived = B; } })).derived.toString() is 'class B extends A { constructor() { super(); this.base = A; this.derived = B; } }' | |
71 | |
72 Class expression assignment to variable | |
73 PASS A threw exception ReferenceError: A is not defined. | |
74 PASS 'use strict'; A threw exception ReferenceError: A is not defined. | |
75 PASS var VarA = class {} did not throw exception. | |
76 PASS 'use strict'; var VarA = class {} did not throw exception. | |
77 PASS var VarA = class { constructor() {} }; VarA.toString() is 'class { construc tor() {} }' | |
78 PASS 'use strict'; var VarA = class { constructor() {} }; VarA.toString() is 'cl ass { constructor() {} }' | |
79 PASS VarA threw exception ReferenceError: VarA is not defined. | |
80 PASS 'use strict'; VarA threw exception ReferenceError: VarA is not defined. | |
81 PASS var VarA = class A { constructor() {} } did not throw exception. | |
82 PASS 'use strict'; var VarA = class A { constructor() {} } did not throw excepti on. | |
83 PASS var VarA = class A { constructor() {} }; VarA.toString() is 'class A { cons tructor() {} }' | |
84 PASS 'use strict'; var VarA = class A { constructor() {} }; VarA.toString() is ' class A { constructor() {} }' | |
85 PASS var VarA = class A { constructor() {} }; A.toString() threw exception Refer enceError: A is not defined. | |
86 PASS 'use strict'; var VarA = class A { constructor() {} }; A.toString() threw e xception ReferenceError: A is not defined. | |
87 PASS var VarA = class A { constructor() {} }; (new VarA) instanceof VarA is true | |
88 PASS 'use strict'; var VarA = class A { constructor() {} }; (new VarA) instanceo f VarA is true | |
89 PASS var VarA = class A { constructor() { this.base = A; } }; (new VarA).base.to String() is 'class A { constructor() { this.base = A; } }' | |
90 PASS 'use strict'; var VarA = class A { constructor() { this.base = A; } }; (new VarA).base.toString() is 'class A { constructor() { this.base = A; } }' | |
91 PASS var VarA = class A { constructor() {} }; var VarB = class B extends VarA { constructor() {} }; did not throw exception. | |
92 PASS 'use strict'; var VarA = class A { constructor() {} }; var VarB = class B e xtends VarA { constructor() {} }; did not throw exception. | |
93 PASS var VarA = class A { constructor() {} }; var VarB = class B extends VarA { constructor() {} }; B threw exception ReferenceError: B is not defined. | |
94 PASS 'use strict'; var VarA = class A { constructor() {} }; var VarB = class B e xtends VarA { constructor() {} }; B threw exception ReferenceError: B is not def ined. | |
95 PASS var VarA = class A { constructor() {} }; var VarB = class B extends VarA { constructor() {} }; VarB.toString() is 'class B extends VarA { constructor() {} }' | |
96 PASS 'use strict'; var VarA = class A { constructor() {} }; var VarB = class B e xtends VarA { constructor() {} }; VarB.toString() is 'class B extends VarA { con structor() {} }' | |
97 PASS var VarA = class A { constructor() {} }; var VarB = class B extends VarA { }; (new VarB) instanceof VarA is true | |
98 PASS 'use strict'; var VarA = class A { constructor() {} }; var VarB = class B e xtends VarA { }; (new VarB) instanceof VarA is true | |
99 PASS var VarA = class A { constructor() {} }; var VarB = class B extends VarA { }; (new VarB) instanceof VarB is true | |
100 PASS 'use strict'; var VarA = class A { constructor() {} }; var VarB = class B e xtends VarA { }; (new VarB) instanceof VarB is true | |
101 PASS var VarA = class A { constructor() {} }; var VarB = class B extends VarA { constructor() { super(); this.base = VarA; this.derived = B; this.derivedVar = V arB; } }; (new VarB).base === VarA is true | |
102 PASS 'use strict'; var VarA = class A { constructor() {} }; var VarB = class B e xtends VarA { constructor() { super(); this.base = VarA; this.derived = B; this. derivedVar = VarB; } }; (new VarB).base === VarA is true | |
103 PASS var VarA = class A { constructor() {} }; var VarB = class B extends VarA { constructor() { super(); this.base = VarA; this.derived = B; this.derivedVar = V arB; } }; (new VarB).derived === VarB is true | |
104 PASS 'use strict'; var VarA = class A { constructor() {} }; var VarB = class B e xtends VarA { constructor() { super(); this.base = VarA; this.derived = B; this. derivedVar = VarB; } }; (new VarB).derived === VarB is true | |
105 PASS var VarA = class A { constructor() {} }; var VarB = class B extends VarA { constructor() { super(); this.base = VarA; this.derived = B; this.derivedVar = V arB; } }; (new VarB).derivedVar === VarB is true | |
106 PASS 'use strict'; var VarA = class A { constructor() {} }; var VarB = class B e xtends VarA { constructor() { super(); this.base = VarA; this.derived = B; this. derivedVar = VarB; } }; (new VarB).derivedVar === VarB is true | |
107 | |
108 Class statement binding in other circumstances | |
109 PASS var result = A; result threw exception ReferenceError: A is not defined. | |
110 PASS 'use strict'; var result = A; result threw exception ReferenceError: A is n ot defined. | |
111 FAIL var result = A; class A {}; result should throw an exception. Was undefined . | |
arv (Not doing code reviews)
2015/04/28 16:03:47
--sloppy-harmony again
| |
112 PASS 'use strict'; var result = A; class A {}; result threw exception ReferenceE rror: A is not defined. | |
113 PASS class A { constructor() { A = 1; } }; new A threw exception TypeError: Assi gnment to constant variable.. | |
114 PASS 'use strict'; class A { constructor() { A = 1; } }; new A threw exception T ypeError: Assignment to constant variable.. | |
115 PASS class A { constructor() { } }; A = 1; A is 1 | |
116 PASS 'use strict'; class A { constructor() { } }; A = 1; A is 1 | |
117 PASS class A {}; var result = A; result did not throw exception. | |
118 PASS 'use strict'; class A {}; var result = A; result did not throw exception. | |
119 PASS eval('var Foo = 10'); Foo is 10 | |
120 PASS 'use strict'; eval('var Foo = 10'); Foo threw exception ReferenceError: Foo is not defined. | |
121 PASS eval('class Bar { constructor() {} }'); Bar.toString() is 'class Bar { cons tructor() {} }' | |
122 PASS 'use strict'; eval('class Bar { constructor() {} }'); Bar.toString() threw exception ReferenceError: Bar is not defined. | |
123 PASS successfullyParsed is true | |
124 | |
125 TEST COMPLETE | |
OLD | NEW |