tor-browser

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

regexp-1.js (920B)


      1 // Mutating certain properties pops the fuse. Changing the enumerable attribute is fine.
      2 function testProp(propName) {
      3  newGlobal().evaluate(`
      4    assertEq(getFuseState().OptimizeRegExpPrototypeFuse.intact, true);
      5    Object.defineProperty(RegExp.prototype, ${propName}, {enumerable: true});
      6    assertEq(getFuseState().OptimizeRegExpPrototypeFuse.intact, true);
      7    Object.defineProperty(RegExp.prototype, ${propName}, {value:null});
      8    assertEq(getFuseState().OptimizeRegExpPrototypeFuse.intact, false);
      9  `);
     10 }
     11 
     12 // Getters.
     13 testProp(`"flags"`);
     14 testProp(`"global"`);
     15 testProp(`"hasIndices"`);
     16 testProp(`"ignoreCase"`);
     17 testProp(`"multiline"`);
     18 testProp(`"sticky"`);
     19 testProp(`"unicode"`);
     20 testProp(`"unicodeSets"`);
     21 testProp(`"dotAll"`);
     22 
     23 // Data properties.
     24 testProp(`"exec"`);
     25 testProp(`Symbol.match`);
     26 testProp(`Symbol.matchAll`);
     27 testProp(`Symbol.replace`);
     28 testProp(`Symbol.search`);
     29 testProp(`Symbol.split`);