Source code

Revision control

Copy as Markdown

Other Tools

// |jit-test| skip-if: !getBuildConfiguration("explicit-resource-management"); --enable-explicit-resource-management
load(libdir + "asserts.js");
let disposedInIf = [];
function testDisposalsInIf(ifTrue) {
using a = {
[Symbol.dispose]: () => disposedInIf.push("a")
};
if (ifTrue) {
using b = {
[Symbol.dispose]: () => disposedInIf.push("b")
};
} else {
using c = {
[Symbol.dispose]: () => disposedInIf.push("c")
};
}
using d = {
[Symbol.dispose]: () => disposedInIf.push("d")
};
disposedInIf.push("e");
}
testDisposalsInIf(true);
assertArrayEq(disposedInIf, ["b", "e", "d", "a"]);
disposedInIf = [];
testDisposalsInIf(false);
assertArrayEq(disposedInIf, ["c", "e", "d", "a"]);