Home | History | Annotate | Download | only in webkit
      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 is true
      7 PASS (new Derived) instanceof Derived is true
      8 PASS (new Derived).callBaseMethod() is baseMethodValue
      9 PASS x = (new Derived).callBaseMethod; x() is baseMethodValue
     10 PASS (new Derived).callBaseMethodInGetter is baseMethodValue
     11 PASS (new Derived).callBaseMethodInSetter = 1; valueInSetter is baseMethodValue
     12 PASS (new Derived).baseMethodInGetterSetter is (new Base).baseMethod
     13 PASS (new Derived).baseMethodInGetterSetter = 1; valueInSetter is (new Base).baseMethod
     14 PASS Derived.staticMethod() is "base3"
     15 PASS (new SecondDerived).chainMethod() is ["base", "derived", "secondDerived"]
     16 PASS x = class extends Base { constructor() { super(); } super() {} } did not throw exception.
     17 PASS x = class extends Base { constructor() { super(); } method() { super() } } threw exception SyntaxError: 'super' keyword unexpected here.
     18 PASS x = class extends Base { constructor() { super(); } method() { super } } threw exception SyntaxError: 'super' keyword unexpected here.
     19 PASS x = class extends Base { constructor() { super(); } method() { return new super } } threw exception SyntaxError: 'super' keyword unexpected here.
     20 PASS x = class extends Base { constructor() { super(); } method1() { delete (super.foo) } method2() { delete super["foo"] } } did not throw exception.
     21 PASS (new x).method1() threw exception ReferenceError: Unsupported reference to 'super'.
     22 PASS (new x).method2() threw exception ReferenceError: Unsupported reference to 'super'.
     23 PASS new (class { constructor() { return undefined; } }) instanceof Object is true
     24 PASS new (class { constructor() { return 1; } }) instanceof Object is true
     25 PASS new (class extends Base { constructor() { return undefined } }) threw exception ReferenceError: this is not defined.
     26 PASS new (class extends Base { constructor() { super(); return undefined } }) instanceof Object is true
     27 PASS x = { }; new (class extends Base { constructor() { return x } }); is x
     28 PASS x instanceof Base is false
     29 PASS new (class extends Base { constructor() { } }) threw exception ReferenceError: this is not defined.
     30 PASS new (class extends Base { constructor() { return 1; } }) threw exception TypeError: Derived constructors may only return object or undefined.
     31 PASS new (class extends null { constructor() { return undefined } }) threw exception ReferenceError: this is not defined.
     32 PASS new (class extends null { constructor() { super(); return undefined } }) threw exception TypeError: super is not a constructor.
     33 PASS x = { }; new (class extends null { constructor() { return x } }); is x
     34 PASS x instanceof Object is true
     35 PASS new (class extends null { constructor() { } }) threw exception ReferenceError: this is not defined.
     36 PASS new (class extends null { constructor() { return 1; } }) threw exception TypeError: Derived constructors may only return object or undefined.
     37 PASS new (class extends null { constructor() { super() } }) threw exception TypeError: super is not a constructor.
     38 PASS new (class { constructor() { super() } }) threw exception SyntaxError: 'super' keyword unexpected here.
     39 PASS function x() { super(); } threw exception SyntaxError: 'super' keyword unexpected here.
     40 PASS new (class extends Object { constructor() { function x() { super() } } }) threw exception SyntaxError: 'super' keyword unexpected here.
     41 PASS new (class extends Object { constructor() { function x() { super.method } } }) threw exception SyntaxError: 'super' keyword unexpected here.
     42 PASS function x() { super.method(); } threw exception SyntaxError: 'super' keyword unexpected here.
     43 PASS function x() { super(); } threw exception SyntaxError: 'super' keyword unexpected here.
     44 PASS successfullyParsed is true
     45 
     46 TEST COMPLETE
     47