tor-browser

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

fun-call-bound-inline-native-3.js (1478B)


      1 // Test inlining bound natives through Function.prototype.call
      2 //
      3 // Array() is inlined when there are 0-1 arguments.
      4 
      5 function arrayThisAbsent() {
      6  var Arr = Array.bind();
      7  for (let i = 0; i < 400; ++i) {
      8    let r = Arr.call();
      9    assertEq(r.length, 0);
     10  }
     11 }
     12 for (let i = 0; i < 2; ++i) arrayThisAbsent();
     13 
     14 function array0() {
     15  var Arr = Array.bind();
     16  for (let i = 0; i < 400; ++i) {
     17    let r = Arr.call(null);
     18    assertEq(r.length, 0);
     19  }
     20 }
     21 for (let i = 0; i < 2; ++i) array0();
     22 
     23 function array0bound1() {
     24  var Arr = Array.bind(null, 3);
     25  for (let i = 0; i < 400; ++i) {
     26    let r = Arr.call(null);
     27    assertEq(r.length, 3);
     28  }
     29 }
     30 for (let i = 0; i < 2; ++i) array0bound1();
     31 
     32 function array1() {
     33  var Arr = Array.bind();
     34  for (let i = 0; i < 400; ++i) {
     35    let r = Arr.call(null, 5);
     36    assertEq(r.length, 5);
     37  }
     38 }
     39 for (let i = 0; i < 2; ++i) array1();
     40 
     41 function array1bound1() {
     42  var Arr = Array.bind(null, 3);
     43  for (let i = 0; i < 400; ++i) {
     44    let r = Arr.call(null, 5);
     45    assertEq(r.length, 2);
     46  }
     47 }
     48 for (let i = 0; i < 2; ++i) array1bound1();
     49 
     50 function array2() {
     51  var Arr = Array.bind();
     52  for (let i = 0; i < 400; ++i) {
     53    let r = Arr.call(null, 5, 10);
     54    assertEq(r.length, 2);
     55  }
     56 }
     57 for (let i = 0; i < 2; ++i) array2();
     58 
     59 function array2bound4() {
     60  var Arr = Array.bind(null, 3, 4, 5, 6);
     61  for (let i = 0; i < 400; ++i) {
     62    let r = Arr.call(null, 5, 10);
     63    assertEq(r.length, 6);
     64  }
     65 }
     66 for (let i = 0; i < 2; ++i) array2bound4();