tor-browser

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

species-fuse-1.js (784B)


      1 function test() {
      2  // Mutating Array.prototype.constructor pops the fuse. A no-op change is fine.
      3  newGlobal().evaluate(`
      4    assertEq(getFuseState().OptimizeArraySpeciesFuse.intact, true);
      5    let p = Array.prototype.constructor;
      6    Array.prototype.constructor = p;
      7    assertEq(getFuseState().OptimizeArraySpeciesFuse.intact, true);
      8    Array.prototype.constructor = Object;
      9    assertEq(getFuseState().OptimizeArraySpeciesFuse.intact, false);
     10  `);
     11 
     12  // Mutating Array[Symbol.species] pops the fuse.
     13  newGlobal().evaluate(`
     14    assertEq(getFuseState().OptimizeArraySpeciesFuse.intact, true);
     15    delete Array[Symbol.species];
     16    assertEq(getFuseState().OptimizeArraySpeciesFuse.intact, false);
     17  `);
     18 
     19  assertEq(getUseCounterResults().OptimizeArraySpeciesFuse, 2);
     20 }
     21 test();