using-in-for-loop.js (907B)
1 // |jit-test| skip-if: !getBuildConfiguration("explicit-resource-management"); --enable-explicit-resource-management 2 3 load(libdir + "asserts.js"); 4 5 const disposedInLoop = []; 6 function testDisposalsInForLoop() { 7 using a = { 8 [Symbol.dispose]: () => disposedInLoop.push("a") 9 }; 10 11 for (let i = 0; i < 3; i++) { 12 using b = { 13 [Symbol.dispose]: () => disposedInLoop.push(i) 14 }; 15 } 16 17 using c = { 18 [Symbol.dispose]: () => disposedInLoop.push("c") 19 }; 20 } 21 testDisposalsInForLoop(); 22 assertArrayEq(disposedInLoop, [0, 1, 2, "c", "a"]); 23 24 const disposedInForInLoop = []; 25 function testDisposalsInForInLoop() { 26 using a = { 27 [Symbol.dispose]: () => disposedInForInLoop.push("a") 28 }; 29 30 for (let i of [0, 1]) { 31 using x = { 32 [Symbol.dispose]: () => { 33 disposedInForInLoop.push(i); 34 } 35 }; 36 } 37 } 38 testDisposalsInForInLoop(); 39 assertArrayEq(disposedInForInLoop, [0, 1, "a"]);