tor-browser

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

call-native-get-element-super.js (726B)


      1 // |jit-test| --fast-warmup; --no-threads
      2 
      3 const target = {};
      4 const receiver = {};
      5 
      6 let count = 0;
      7 function getter() {
      8  count++;
      9  assertEq(this, receiver);
     10 }
     11 
     12 var x = Math.hypot(1,0);
     13 var y = 2**31 - 1;
     14 var z = -1;
     15 
     16 Object.defineProperty(target, x, { get: getter });
     17 Object.defineProperty(target, y, { get: getter });
     18 Object.defineProperty(target, z, { get: getter });
     19 
     20 function get(id) {
     21  return Reflect.get(target, id, receiver);
     22 }
     23 
     24 function test() {
     25  with ({}) {}
     26  count = 0;
     27  for (var i = 0; i < 100; i++) {
     28    get(x);
     29    get(y);
     30    get(z);
     31  }
     32  assertEq(count, 300);
     33 }
     34 
     35 // Test baseline IC / transpiled to MIR
     36 test();
     37 
     38 // Force an IC in Ion.
     39 for (var i = 0; i < 10; i++) {
     40  get("a");
     41 }
     42 
     43 // Test ion IC
     44 test();