tor-browser

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

disposable-stack-ccw-ops.js (878B)


      1 // |jit-test| skip-if: !getBuildConfiguration("explicit-resource-management"); --enable-explicit-resource-management
      2 
      3 load(libdir + "asserts.js");
      4 
      5 {
      6  const g = newGlobal({ newCompartment: true });
      7  const d = g.eval(`
      8    globalThis.disposed = [];
      9    const d = new DisposableStack();
     10    d.use({ [Symbol.dispose]: () => globalThis.disposed.push(1) });
     11    d;
     12  `);
     13  {
     14    DisposableStack.prototype.dispose.call(d);
     15    assertEq(d.disposed, true);
     16    assertArrayEq(g.eval("globalThis.disposed"), [1]);
     17  }
     18 }
     19 
     20 {
     21  {
     22    const g = newGlobal({ newCompartment: true });
     23    const d = g.eval(`
     24      globalThis.disposed = [];
     25      const d = new DisposableStack();
     26      d.use({ [Symbol.dispose]: () => globalThis.disposed.push(1) });
     27      d;
     28    `);
     29    nukeAllCCWs();
     30    {
     31      assertThrowsInstanceOf(() => DisposableStack.prototype.dispose.call(d), TypeError);
     32    }
     33  }
     34 }