ES6 class syntax should use block scoping
[WebKit.git] / LayoutTests / js / class-syntax-super-expected.txt
1 Tests for ES6 class syntax "super"
2
3 On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
4
5
6 PASS (new Base) instanceof Base
7 PASS (new Derived) instanceof Derived
8 PASS (new Derived).callBaseMethod():::baseMethodValue
9 PASS x = (new Derived).callBaseMethod; x():::baseMethodValue
10 PASS (new Derived).callBaseMethodInGetter:::baseMethodValue
11 PASS (new Derived).callBaseMethodInSetter = 1; valueInSetter:::baseMethodValue
12 PASS (new Derived).baseMethodInGetterSetter:::(new Base).baseMethod
13 PASS (new Derived).baseMethodInGetterSetter = 1; valueInSetter:::(new Base).baseMethod
14 PASS Derived.staticMethod():::"base3"
15 PASS (new SecondDerived).chainMethod().toString():::["base", "derived", "secondDerived"].toString()
16 PASS x = class extends Base { constructor() { super(); } super() {} }:::SyntaxError: Unexpected keyword 'super'
17 PASS x = class extends Base { constructor() { super(); } method() { super() } }:::SyntaxError: Cannot call super() outside of a class constructor.
18 PASS x = class extends Base { constructor() { super(); } method() { super } }:::SyntaxError: Cannot reference super.
19 PASS x = class extends Base { constructor() { super(); } method() { return new super } }:::SyntaxError: Cannot use new with super.
20 PASS x = class extends Base { constructor() { super(); } method1() { delete (super.foo) } method2() { delete super["foo"] } }
21 PASS (new x).method1():::ReferenceError: Cannot delete a super property
22 PASS (new x).method2():::ReferenceError: Cannot delete a super property
23 PASS new (class { constructor() { return undefined; } }) instanceof Object
24 PASS new (class { constructor() { return 1; } }) instanceof Object
25 PASS new (class extends Base { constructor() { return undefined } }):::ReferenceError: Cannot access uninitialized variable.
26 PASS new (class extends Base { constructor() { super(); return undefined } }) instanceof Object
27 PASS x = { }; new (class extends Base { constructor() { return x } });:::x
28 PASS x instanceof Base
29 PASS new (class extends Base { constructor() { } }):::ReferenceError: Cannot access uninitialized variable.
30 PASS new (class extends Base { constructor() { return 1; } }):::TypeError: Cannot return a non-object type in the constructor of a derived class.
31 PASS new (class extends null { constructor() { return undefined } }):::ReferenceError: Cannot access uninitialized variable.
32 PASS new (class extends null { constructor() { super(); return undefined } }):::TypeError: undefined is not an object (evaluating 'super()')
33 PASS x = { }; new (class extends null { constructor() { return x } });:::x
34 PASS x instanceof Object
35 PASS new (class extends null { constructor() { } }):::ReferenceError: Cannot access uninitialized variable.
36 PASS new (class extends null { constructor() { return 1; } }):::TypeError: Cannot return a non-object type in the constructor of a derived class.
37 PASS new (class extends null { constructor() { super() } }):::TypeError: undefined is not an object (evaluating 'super()')
38 PASS new (class { constructor() { super() } }):::SyntaxError: Cannot call super() in a base class constructor.
39 PASS function x() { super(); }:::SyntaxError: Cannot call super() outside of a class constructor.
40 PASS new (class extends Object { constructor() { function x() { super() } } }):::SyntaxError: Cannot call super() outside of a class constructor.
41 PASS new (class extends Object { constructor() { function x() { super.method } } }):::SyntaxError: super can only be used in a method of a derived class.
42 PASS function x() { super.method(); }:::SyntaxError: super can only be used in a method of a derived class.
43 PASS function x() { super(); }:::SyntaxError: Cannot call super() outside of a class constructor.
44 PASS successfullyParsed
45
46 TEST COMPLETE
47