tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

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();