tor-browser

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

fun-apply-as-call-native-1.js (988B)


      1 // Function.prototype.apply is inlined as Function.prototype.call when it's
      2 // called with less than two arguments.
      3 //
      4 // Test monomorphic calls.
      5 
      6 function testThisAbsent() {
      7  for (let i = 0; i < 200; ++i) {
      8    let r = Math.min.apply();
      9    assertEq(r, Infinity);
     10  }
     11 }
     12 for (let i = 0; i < 2; ++i) testThisAbsent();
     13 
     14 function test0() {
     15  for (let i = 0; i < 200; ++i) {
     16    let r = Math.min.apply(null);
     17    assertEq(r, Infinity);
     18  }
     19 }
     20 for (let i = 0; i < 2; ++i) test0();
     21 
     22 // NOTE: We don't yet inline the case when the second argument is |null|.
     23 function test1Null() {
     24  for (let i = 0; i < 200; ++i) {
     25    let r = Math.min.apply(null, null);
     26    assertEq(r, Infinity);
     27  }
     28 }
     29 for (let i = 0; i < 2; ++i) test1Null();
     30 
     31 // NOTE: We don't yet inline the case when the second argument is |undefined|.
     32 function test1Undefined() {
     33  for (let i = 0; i < 200; ++i) {
     34    let r = Math.min.apply(null, undefined);
     35    assertEq(r, Infinity);
     36  }
     37 }
     38 for (let i = 0; i < 2; ++i) test1Undefined();