inline-arguments-escaped-new-spread-optimization.js (859B)
1 // |jit-test| --fast-warmup 2 3 function foo(...args) { 4 with ({}) {} 5 return {result: args.length}; 6 } 7 8 function inner() { 9 return arguments; 10 } 11 12 function outer0() { 13 trialInline(); 14 var args = inner(); 15 return new foo(...args); 16 } 17 18 function outer1() { 19 trialInline(); 20 var args = inner(1); 21 return new foo(...args); 22 } 23 24 function outer2() { 25 trialInline(); 26 var args = inner(1,2); 27 return new foo(...args); 28 } 29 30 function outer3() { 31 trialInline(); 32 var args = inner(1,2,3); 33 return new foo(...args); 34 } 35 36 function outer4() { 37 trialInline(); 38 var args = inner(1,2,3,4); 39 return new foo(...args); 40 } 41 42 with ({}) {} 43 44 for (var i = 0; i < 50; i++) { 45 assertEq(outer0().result, 0); 46 assertEq(outer1().result, 1); 47 assertEq(outer2().result, 2); 48 assertEq(outer3().result, 3); 49 assertEq(outer4().result, 4); 50 }