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