tor-browser

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

inline-arguments-spread-optimization.js (728B)


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