tor-browser

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

arguments-on-proto.js (776B)


      1 function create() {
      2    return Object.create(arguments, {2: {value: "shadowed"}});
      3 }
      4 
      5 function createStrict() {
      6    "use strict";
      7    return Object.create(arguments, {40: {value: "shadowed2"}});
      8 }
      9 
     10 function f() {
     11    var args = [createStrict(10, 20, 30, 40), create(1, 2, 3)];
     12 
     13    var threshold = getJitCompilerOptions()["ion.warmup.trigger"] + 101;
     14 
     15    for (var i = 0; i < threshold; i++) {
     16        // We switch between different arguments objects, to make
     17        // sure the right IC is triggered.
     18        var a = args[i % 2];
     19        assertEq(a.length, (i % 2) ? 3 : 4);
     20        assertEq(a[0], (i % 2) ? 1 : 10);
     21        assertEq(a[1], (i % 2) ? 2 : 20);
     22        assertEq(a[2], (i % 2) ? "shadowed" : 30);
     23        assertEq(a[3], (i % 2) ? undefined : 40);
     24    }
     25 }
     26 
     27 f();