tor-browser

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

phi-specialization.js (718B)


      1 // |jit-test| --fast-warmup
      2 
      3 var sum = 0;
      4 
      5 function foo(copy, shouldThrow) {
      6  switch (copy) {
      7   case 0:
      8    var x = 0;
      9    try {
     10      if (shouldThrow) { throw 0;}
     11      x = 1;
     12    } catch {
     13      x = "a";
     14    }
     15    // We create a specialized phi for x here, which bails out.
     16    for (var i = 0; i < 100; i++) {
     17      sum += x;
     18    }
     19    break;
     20   case 1:
     21    var y = 0;
     22    try {
     23      if (shouldThrow) { throw 0;}
     24      y = 1;
     25    } catch {
     26      y = "a";
     27    }
     28    // We do not create a specialized phi the second time.
     29    for (var i = 0; i < 100; i++) {
     30      sum += y;
     31    }
     32    break;
     33  }
     34 }
     35 
     36 with ({}) {}
     37 for (var i = 0; i < 2; i++) {
     38  for (var j = 0; j < 50; j++) {
     39    foo(i, false);
     40  }
     41  foo(i, true);
     42 }