ce1828cee9a1bba51edcbfb9797f98496dd95ae5
[WebKit.git] / LayoutTests / js / class-syntax-extends-expected.txt
1 Tests for ES6 class syntax "extends"
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 Object.getPrototypeOf(new Base) is Base.prototype
8 PASS (new Derived) instanceof Derived is true
9 PASS Object.getPrototypeOf(new Derived) is Derived.prototype
10 PASS Object.getPrototypeOf(Derived.prototype) is Base.prototype
11 PASS (new Derived).baseMethod() is "base"
12 PASS (new Derived).overridenMethod() is "derived"
13 PASS Derived.staticBaseMethod() is "base"
14 PASS Derived.staticOverridenMethod() is "derived"
15 PASS x = class extends threw exception SyntaxError: Unexpected end of script.
16 PASS x = class extends threw exception SyntaxError: Unexpected end of script.
17 PASS x = class extends Base { threw exception SyntaxError: Unexpected end of script.
18 PASS x = class extends Base { } did not throw exception.
19 PASS x = class extends Base { constructor() { } } did not throw exception.
20 PASS x.__proto__ is Base
21 PASS Object.getPrototypeOf(x) is Base
22 PASS x.prototype.__proto__ is Base.prototype
23 PASS Object.getPrototypeOf(x.prototype) is Base.prototype
24 PASS x = class extends null { constructor() { } }; x.__proto__ is Function.prototype
25 PASS x.__proto__ is Function.prototype
26 PASS x = class extends 3 { constructor() { } }; x.__proto__ threw exception TypeError: The superclass is not an object..
27 PASS x = class extends "abc" { constructor() { } }; x.__proto__ threw exception TypeError: The superclass is not an object..
28 PASS baseWithBadPrototype = function () {}; baseWithBadPrototype.prototype = 3; new baseWithBadPrototype did not throw exception.
29 PASS x = class extends baseWithBadPrototype { constructor() { } } threw exception TypeError: The superclass's prototype is not an object..
30 PASS baseWithBadPrototype.prototype = "abc" did not throw exception.
31 PASS x = class extends baseWithBadPrototype { constructor() { } } threw exception TypeError: The superclass's prototype is not an object..
32 PASS baseWithBadPrototype.prototype = null; x = class extends baseWithBadPrototype { constructor() { } } did not throw exception.
33 PASS x = 1; c = class extends ++x { constructor() { } }; threw exception SyntaxError: Unexpected token '++'.
34 PASS x = 1; c = class extends x++ { constructor() { } }; threw exception SyntaxError: Unexpected token '++'. Expected opening '{' at the start of a class body..
35 PASS x = 1; c = class extends (++x) { constructor() { } }; threw exception TypeError: The superclass is not an object..
36 PASS x = 1; c = class extends (x++) { constructor() { } }; threw exception TypeError: The superclass is not an object..
37 PASS x = 1; try { c = class extends (++x) { constructor() { } } } catch (e) { }; x is 2
38 PASS x = 1; try { c = class extends (x++) { constructor() { } } } catch (e) { }; x is 2
39 PASS namespace = {}; namespace.A = class { }; namespace.B = class extends namespace.A { } did not throw exception.
40 PASS namespace = {}; namespace.A = class A { }; namespace.B = class B extends namespace.A { } did not throw exception.
41 PASS namespace = {}; namespace.A = class { constructor() { } }; namespace.B = class extends namespace.A { constructor() { } } did not throw exception.
42 PASS namespace = {}; namespace.A = class A { constructor() { } }; namespace.B = class B extends namespace.A { constructor() { } } did not throw exception.
43 PASS namespace = {}; namespace.A = class { constructor() { } }; namespace.B = class extends (namespace.A) { constructor() { } } did not throw exception.
44 PASS namespace = {}; namespace.A = class { constructor() { } }; namespace.B = class extends namespace["A"] { constructor() { } } did not throw exception.
45 PASS namespace = {}; namespace.A = class { constructor() { } }; function getClassA() { return namespace.A }; namespace.B = class extends getClassA() { constructor() { } } did not throw exception.
46 PASS namespace = {}; namespace.A = class { constructor() { } }; function getClass(prop) { return namespace[prop] }; namespace.B = class extends getClass("A") { constructor() { } } did not throw exception.
47 PASS namespace = {}; namespace.A = class { constructor() { } }; namespace.B = class extends (false||null||namespace.A) { constructor() { } } did not throw exception.
48 PASS namespace = {}; namespace.A = class { constructor() { } }; namespace.B = class extends false||null||namespace.A { constructor() { } } threw exception SyntaxError: Unexpected token '||'. Expected opening '{' at the start of a class body..
49 PASS x = 1; namespace = {}; namespace.A = class { constructor() { } }; namespace.B = class extends (x++, namespace.A) { constructor() { } }; did not throw exception.
50 PASS x = 1; namespace = {}; namespace.A = class { constructor() { } }; namespace.B = class extends (namespace.A, x++) { constructor() { } }; threw exception TypeError: The superclass is not an object..
51 PASS namespace = {}; namespace.A = class { constructor() { } }; namespace.B = class extends new namespace.A { constructor() { } } threw exception TypeError: The superclass's prototype is not an object..
52 PASS namespace = {}; namespace.A = class { constructor() { } }; namespace.B = class extends new namespace.A() { constructor() { } } threw exception TypeError: The superclass's prototype is not an object..
53 PASS x = 1; namespace = {}; namespace.A = class { constructor() { } }; try { namespace.B = class extends (x++, namespace.A) { constructor() { } } } catch (e) { } x is 2
54 PASS x = 1; namespace = {}; namespace.A = class { constructor() { } }; try { namespace.B = class extends (namespace.A, x++) { constructor() { } } } catch (e) { } x is 2
55 PASS Object.getPrototypeOf((class { constructor () { } }).prototype) is Object.prototype
56 PASS Object.getPrototypeOf((class extends null { constructor () { super(); } }).prototype) is null
57 PASS new (class extends undefined { constructor () { this } }) threw exception TypeError: The superclass is not an object..
58 PASS x = undefined; new (class extends x { constructor () { super(); } }) threw exception TypeError: The superclass is not an object..
59 PASS class x {}; new (class extends null { constructor () { return new x; } }) instanceof x is true
60 PASS new (class extends null { constructor () { this; } }) threw exception ReferenceError: Cannot access uninitialized variable..
61 PASS new (class extends null { constructor () { super(); } }) threw exception TypeError: undefined is not an object (evaluating 'super()').
62 PASS x = {}; new (class extends null { constructor () { return x } }) is x
63 PASS y = 12; new (class extends null { constructor () { return y; } }) threw exception TypeError: Cannot return a non-object type in the constructor of a derived class..
64 PASS class x {}; new (class extends null { constructor () { return new x; } }) instanceof x is true
65 PASS x = null; Object.getPrototypeOf((class extends x { }).prototype) is null
66 PASS Object.prototype.isPrototypeOf(class { }) is true
67 PASS Function.prototype.isPrototypeOf(class { }) is true
68 PASS successfullyParsed is true
69
70 TEST COMPLETE
71