using-in-if.js (734B)
1 // |jit-test| skip-if: !getBuildConfiguration("explicit-resource-management"); --enable-explicit-resource-management 2 3 load(libdir + "asserts.js"); 4 5 let disposedInIf = []; 6 function testDisposalsInIf(ifTrue) { 7 using a = { 8 [Symbol.dispose]: () => disposedInIf.push("a") 9 }; 10 11 if (ifTrue) { 12 using b = { 13 [Symbol.dispose]: () => disposedInIf.push("b") 14 }; 15 } else { 16 using c = { 17 [Symbol.dispose]: () => disposedInIf.push("c") 18 }; 19 } 20 21 using d = { 22 [Symbol.dispose]: () => disposedInIf.push("d") 23 }; 24 25 disposedInIf.push("e"); 26 } 27 testDisposalsInIf(true); 28 assertArrayEq(disposedInIf, ["b", "e", "d", "a"]); 29 disposedInIf = []; 30 testDisposalsInIf(false); 31 assertArrayEq(disposedInIf, ["c", "e", "d", "a"]);