classes.js (903B)
1 load(libdir + 'bytecode-cache.js'); 2 3 // Prevent relazification triggered by some zeal modes. Relazification can cause 4 // test failures because lazy functions are XDR'd differently. 5 gczeal(0); 6 7 var test = "new class extends class { } { constructor() { super(); } }()"; 8 evalWithCache(test, { assertEqBytecode : true }); 9 10 var test = "new class { method() { super.toString(); } }().method()"; 11 evalWithCache(test, { assertEqBytecode : true }); 12 13 // Test class constructor in lazy function 14 var test = ` 15 function f(delazify) { 16 function inner1() { 17 class Y { 18 constructor() {} 19 } 20 } 21 22 function inner2() { 23 class Y { 24 constructor() {} 25 field1 = ""; 26 } 27 } 28 29 if (delazify) { 30 inner1(); 31 inner2(); 32 } 33 } 34 f(generation > 0); 35 `; 36 evalWithCache(test, {});