tor-browser

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

await-using-with-for-await-of.js (978B)


      1 // |jit-test| skip-if: !getBuildConfiguration("explicit-resource-management"); --enable-explicit-resource-management
      2 
      3 load(libdir + "asserts.js");
      4 
      5 {
      6  const disposedInForOf = [];
      7  async function testDisposalsInForOfWithAsyncIter() {
      8    async function* asyncGenerator() {
      9      yield {
     10        value: "a",
     11        [Symbol.asyncDispose]: () => disposedInForOf.push("disposed a")
     12      };
     13      yield {
     14        value: "b",
     15        [Symbol.asyncDispose]: () => disposedInForOf.push("disposed b")
     16      };
     17      yield {
     18        value: "c",
     19        [Symbol.asyncDispose]: () => disposedInForOf.push("disposed c")
     20      };
     21    }
     22 
     23    for await (await using disposable of asyncGenerator()) {
     24      await using d = {
     25        [Symbol.asyncDispose]() {
     26          disposedInForOf.push(disposable.value);
     27        }
     28      };
     29    }
     30  }
     31 
     32  testDisposalsInForOfWithAsyncIter();
     33  drainJobQueue();
     34  assertArrayEq(disposedInForOf, ["a", "disposed a", "b", "disposed b", "c", "disposed c"]);
     35 }