tor-browser

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

async-disposable-stack-ccw-ops.js (888B)


      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 AsyncDisposableStack();
     10    d.use({ [Symbol.asyncDispose]: () => globalThis.disposed.push(1) });
     11    d;
     12  `);
     13  AsyncDisposableStack.prototype.disposeAsync.call(d);
     14  drainJobQueue();
     15  assertEq(d.disposed, true);
     16  assertArrayEq(g.eval("globalThis.disposed"), [1]);
     17 }
     18 
     19 {
     20  const g = newGlobal({ newCompartment: true });
     21  const d = g.eval(`
     22    globalThis.disposed = [];
     23    const d = new AsyncDisposableStack();
     24    d.use({ [Symbol.asyncDispose]: () => globalThis.disposed.push(1) });
     25    d;
     26  `);
     27  nukeAllCCWs();
     28  assertThrowsInstanceOfAsync(() => AsyncDisposableStack.prototype.disposeAsync.call(d), TypeError);
     29 }