mixed-disposals.js (679B)
1 // |jit-test| skip-if: !getBuildConfiguration("explicit-resource-management"); --enable-explicit-resource-management 2 3 load(libdir + "asserts.js"); 4 5 const disposed = []; 6 async function testMixedDisposals() { 7 using a = { 8 [Symbol.dispose]: () => disposed.push("a") 9 } 10 11 await using b = { 12 [Symbol.asyncDispose]: () => disposed.push("b") 13 }; 14 15 { 16 await using c = { 17 [Symbol.dispose]: () => disposed.push("c") 18 } 19 20 using d = { 21 [Symbol.dispose]: () => disposed.push("d") 22 } 23 } 24 25 await using e = { 26 [Symbol.asyncDispose]: () => disposed.push("e") 27 }; 28 } 29 testMixedDisposals(); 30 drainJobQueue(); 31 assertArrayEq(disposed, ["d", "c", "e", "b", "a"]);