super.js (1040B)
1 class Base { 2 } 3 4 class C extends Base { 5 field; 6 } 7 let c = new C(); 8 assertEq(true, "field" in c); 9 10 var D = class extends Base { 11 field; 12 }; 13 let d = new D(); 14 assertEq(true, "field" in d); 15 16 class E extends Base { 17 field; 18 constructor() { 19 super(); 20 } 21 }; 22 let e = new E(); 23 assertEq(true, "field" in e); 24 25 class F extends Base { 26 constructor() { 27 super(); 28 } 29 field; 30 }; 31 let f = new F(); 32 assertEq(true, "field" in f); 33 34 class G extends Base { 35 field2 = 2; 36 constructor() { 37 super(); 38 } 39 field3 = 3; 40 }; 41 let g = new G(); 42 assertEq(2, g.field2); 43 assertEq(3, g.field3); 44 45 class H extends Base { 46 field = 2; 47 constructor() { 48 eval("super()"); 49 } 50 }; 51 let h = new H(); 52 assertEq(2, h.field); 53 54 class I extends Base { 55 field = 2; 56 constructor() { 57 class Tmp { 58 field = 10; 59 [super()]; 60 } 61 } 62 }; 63 let i = new I(); 64 assertEq(2, i.field); 65 66 class J extends Base { 67 field = 2; 68 constructor() { 69 class Tmp { 70 field = 10; 71 [super()](){} 72 } 73 } 74 }; 75 let j = new J(); 76 assertEq(2, j.field);