tor-browser

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

property-mutation-3.js (664B)


      1 function test() {
      2  assertEq(getFuseState().ArrayPrototypeIteratorFuse.intact, true);
      3 
      4  // This defineProperty doesn't change the value so the fuse stays intact.
      5  let proto = Array.prototype;
      6  let desc = Object.getOwnPropertyDescriptor(proto, Symbol.iterator);
      7  Object.defineProperty(proto, Symbol.iterator, desc);  
      8  assertEq(getFuseState().ArrayPrototypeIteratorFuse.intact, true);
      9 
     10  // Changing the property to an accessor property must pop the fuse.
     11  desc.get = desc.value;
     12  delete desc.value;
     13  delete desc.writable;
     14  Object.defineProperty(proto, Symbol.iterator, desc);
     15  assertEq(getFuseState().ArrayPrototypeIteratorFuse.intact, false);
     16 }
     17 test();