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