disposal-before-dead-frame-slots.js (571B)
1 // |jit-test| skip-if: !getBuildConfiguration("explicit-resource-management"); --enable-explicit-resource-management 2 3 load(libdir + "asserts.js"); 4 5 const g = newGlobal({ newCompartment: true }); 6 const dbg = new Debugger(g); 7 8 let called = false; 9 10 dbg.onEnterFrame = frame => { 11 if (frame.callee?.name === "dispose") { 12 const vVal = frame.eval("v"); 13 assertEq(vVal.return, 10); 14 called = true; 15 } 16 }; 17 18 g.eval(` 19 function* f() { 20 let v = 10; 21 22 using d = { 23 [Symbol.dispose]: function dispose() { 24 } 25 }; 26 return; 27 } 28 f().next(); 29 `); 30 31 assertEq(called, true);