// |jit-test| skip-if: !getBuildConfiguration("explicit-resource-management"); --enable-explicit-resource-management load(libdir + "asserts.js"); const disposedInClassStatic = []; class staticBlockClass { static { using x = { value: 1, [Symbol.dispose]() { disposedInClassStatic.push(42); } }; } } function testDisposalsInClassStatic() { const example = new staticBlockClass(); disposedInClassStatic.push(43); } testDisposalsInClassStatic(); assertArrayEq(disposedInClassStatic, [42, 43]); const disposedInDerivedCtor = []; class baseClass { constructor() { disposedInDerivedCtor.push(43); } } class subClass extends baseClass { constructor() { try { using x = { value: 1, [Symbol.dispose]() { disposedInDerivedCtor.push(42); } }; } finally { super(); } } } function testDisposalsInDerivedCtor() { const example = new subClass(); disposedInDerivedCtor.push(44); } testDisposalsInDerivedCtor(); assertArrayEq(disposedInDerivedCtor, [42, 43, 44]);