tor-browser

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

WeakSet-delete.js (875B)


      1 var ws = new WeakSet;
      2 
      3 // Delete on empty
      4 assertEq(ws.delete({}), false);
      5 
      6 // Delete existing
      7 var value = {};
      8 ws.add(value);
      9 assertEq(ws.has(value), true);
     10 assertEq(ws.delete(value), true);
     11 assertEq(ws.has(value), false);
     12 
     13 // Delete non-empty
     14 for (var i = 0; i < 10; i++)
     15    ws.add({});
     16 assertEq(ws.add(value), ws);
     17 assertEq(ws.has(value), true);
     18 assertEq(ws.delete(value), true);
     19 assertEq(ws.has(value), false);
     20 assertEq(ws.delete(value), false);
     21 assertEq(ws.has(value), false);
     22 
     23 // Delete primitive
     24 assertEq(ws.delete(15), false);
     25 
     26 // Delete with cross-compartment WeakSet
     27 ws = new (newGlobal().WeakSet);
     28 WeakSet.prototype.add.call(ws, value);
     29 assertEq(WeakSet.prototype.has.call(ws, value), true);
     30 assertEq(WeakSet.prototype.delete.call(ws, value), true);
     31 assertEq(WeakSet.prototype.has.call(ws, value), false);
     32 assertEq(WeakSet.prototype.delete.call(ws, value), false);