scalar-replace-array-construct-array-03.js (525B)
1 setJitCompilerOption("inlining.bytecode-max-length", 200); 2 3 function escape() { with ({}) {} } 4 5 class Foo { 6 constructor(i) { 7 this.value = i; 8 } 9 } 10 11 class Bar extends Foo { 12 constructor(n, ...args) { 13 escape(args); 14 super(...args); 15 } 16 } 17 18 // |Bar| must be small enough to be inlinable. 19 assertEq(isSmallFunction(Bar), true); 20 21 class Baz extends Bar { 22 constructor(a, n) { 23 super(n, n); 24 } 25 } 26 27 var sum = 0; 28 for (var i = 0; i < 10000; i++) { 29 let obj = new Baz(0, 1); 30 sum += obj.value; 31 } 32 assertEq(sum, 10000);