calling super() a second time in a constructor should throw
[WebKit-https.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 DerivedWithEval) instanceof DerivedWithEval
9 PASS (new DerivedWithEval(true)):::ReferenceError: Cannot access uninitialized variable.
10 PASS (new Derived).callBaseMethod():::baseMethodValue
11 PASS x = (new Derived).callBaseMethod; x():::baseMethodValue
12 PASS (new Derived).callBaseMethodInGetter:::baseMethodValue
13 PASS (new Derived).callBaseMethodInSetter = 1; valueInSetter:::baseMethodValue
14 PASS (new Derived).baseMethodInGetterSetter:::(new Base).baseMethod
15 PASS (new Derived).baseMethodInGetterSetter = 1; valueInSetter:::(new Base).baseMethod
16 PASS Derived.staticMethod():::"base3"
17 PASS (new SecondDerived).chainMethod().toString():::["base", "derived", "secondDerived"].toString()
18 PASS x = class extends Base { constructor() { super(); } super() {} }
19 PASS x = class extends Base { constructor() { super(); } method() { super() } }:::SyntaxError: super is not valid in this context.
20 PASS x = class extends Base { constructor() { super(); } method() { super } }:::SyntaxError: super is not valid in this context.
21 PASS x = class extends Base { constructor() { super(); } method() { return new super } }:::SyntaxError: Cannot use new with super.
22 PASS x = class extends Base { constructor() { super(); } method1() { delete (super.foo) } method2() { delete super["foo"] } }
23 PASS (new x).method1():::ReferenceError: Cannot delete a super property
24 PASS (new x).method2():::ReferenceError: Cannot delete a super property
25 PASS new (class { constructor() { return undefined; } }) instanceof Object
26 PASS new (class { constructor() { return 1; } }) instanceof Object
27 PASS new (class extends Base { constructor() { return undefined } }):::ReferenceError: Cannot access uninitialized variable.
28 PASS new (class extends Base { constructor() { super(); return undefined } }) instanceof Object
29 PASS x = { }; new (class extends Base { constructor() { return x } });:::x
30 PASS x instanceof Base
31 PASS new (class extends Base { constructor() { } }):::ReferenceError: Cannot access uninitialized variable.
32 PASS new (class extends Base { constructor() { return 1; } }):::TypeError: Cannot return a non-object type in the constructor of a derived class.
33 PASS new (class extends null { constructor() { return undefined } }):::ReferenceError: Cannot access uninitialized variable.
34 PASS new (class extends null { constructor() { super(); return undefined } }):::TypeError: function is not a constructor (evaluating 'super()')
35 PASS x = { }; new (class extends null { constructor() { return x } });:::x
36 PASS x instanceof Object
37 PASS new (class extends null { constructor() { } }):::ReferenceError: Cannot access uninitialized variable.
38 PASS new (class extends null { constructor() { return 1; } }):::TypeError: Cannot return a non-object type in the constructor of a derived class.
39 PASS new (class extends null { constructor() { super() } }):::TypeError: function is not a constructor (evaluating 'super()')
40 PASS new (class { constructor() { super() } }):::SyntaxError: super is not valid in this context.
41 PASS function x() { super(); }:::SyntaxError: super is not valid in this context.
42 PASS new (class extends Object { constructor() { function x() { super() } } }):::SyntaxError: super is not valid in this context.
43 PASS new (class extends Object { constructor() { function x() { super.method } } }):::SyntaxError: super is not valid in this context.
44 PASS function x() { super.method(); }:::SyntaxError: super is not valid in this context.
45 PASS function x() { super(); }:::SyntaxError: super is not valid in this context.
46 PASS eval("super.method()"):::SyntaxError: super is not valid in this context.
47 PASS eval("super()"):::SyntaxError: super is not valid in this context.
48 PASS (function () { eval("super.method()");})():::SyntaxError: super is not valid in this context.
49 PASS (function () { eval("super()");})():::SyntaxError: super is not valid in this context.
50 PASS new (class { constructor() { (function () { eval("super()");})(); } }):::SyntaxError: super is not valid in this context.
51 PASS (new (class { method() { (function () { eval("super.method()");})(); }})).method():::SyntaxError: super is not valid in this context.
52 PASS new (class extends Base { constructor() { super(); super();}}):::ReferenceError: 'super()' can't be called more than once in a constructor.
53 PASS successfullyParsed
54
55 TEST COMPLETE
56