fun-call-inline-native-1.js (1320B)
1 // Test inlining natives through Function.prototype.call 2 // 3 // Math.min() is inlined when there are 1-4 arguments. 4 5 function mathMinThisAbsent() { 6 for (let i = 0; i < 400; ++i) { 7 let r = Math.min.call(); 8 assertEq(r, Infinity); 9 } 10 } 11 for (let i = 0; i < 2; ++i) mathMinThisAbsent(); 12 13 function mathMin0() { 14 for (let i = 0; i < 400; ++i) { 15 let r = Math.min.call(null); 16 assertEq(r, Infinity); 17 } 18 } 19 for (let i = 0; i < 2; ++i) mathMin0(); 20 21 function mathMin1() { 22 for (let i = 0; i < 400; ++i) { 23 let r = Math.min.call(null, i); 24 assertEq(r, i); 25 } 26 } 27 for (let i = 0; i < 2; ++i) mathMin1(); 28 29 function mathMin2() { 30 for (let i = 0; i < 400; ++i) { 31 let r = Math.min.call(null, i, i + 1); 32 assertEq(r, i); 33 } 34 } 35 for (let i = 0; i < 2; ++i) mathMin2(); 36 37 function mathMin3() { 38 for (let i = 0; i < 400; ++i) { 39 let r = Math.min.call(null, i, i + 1, i + 2); 40 assertEq(r, i); 41 } 42 } 43 for (let i = 0; i < 2; ++i) mathMin3(); 44 45 function mathMin4() { 46 for (let i = 0; i < 400; ++i) { 47 let r = Math.min.call(null, i, i + 1, i + 2, i + 3); 48 assertEq(r, i); 49 } 50 } 51 for (let i = 0; i < 2; ++i) mathMin4(); 52 53 function mathMin5() { 54 for (let i = 0; i < 400; ++i) { 55 let r = Math.min.call(null, i, i + 1, i + 2, i + 3, i + 4); 56 assertEq(r, i); 57 } 58 } 59 for (let i = 0; i < 2; ++i) mathMin5();