tor-browser

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

bug-1643913.js (741B)


      1 gczeal(0);
      2 
      3 for (let p of [false, true]) {
      4  f(p);
      5 
      6  // Run an incremental GC to completion.
      7  startgc(1);
      8  while (gcstate() !== 'NotActive') {
      9    gcslice(10000, { dontStart: true });
     10  }
     11 }
     12 
     13 function ccwToObject() {
     14  return evalcx('({})', newGlobal({newCompartment: true}));
     15 }
     16 
     17 function ccwToRegistry() {
     18  return evalcx('new FinalizationRegistry(value => {})',
     19                newGlobal({newCompartment: true}));
     20 }
     21 
     22 function f(p) {
     23  let registry = ccwToRegistry();
     24  let target = ccwToObject();
     25  registry.register(target, undefined);
     26 
     27  // Add a CCW from registry to target zone or vice versa to control
     28  // the order the zones are swept in.
     29  if (p) {
     30    registry.ptr = target;
     31  } else {
     32    target.ptr = registry;
     33  }
     34 
     35  gc();
     36 }