Frame-constructing-02.js (584B)
1 // Debugger.Frame.prototype.constructing on an async function. 2 3 load(libdir + "asserts.js"); 4 5 const g = newGlobal({ newCompartment: true }); 6 const dbg = Debugger(g); 7 8 g.eval(` 9 async function f() { 10 await Promise.resolve(); 11 } 12 `); 13 14 let frame; 15 dbg.onEnterFrame = function(f) { 16 frame = f; 17 assertEq(frame.constructing, false); 18 }; 19 20 (async () => { 21 const promise = g.f(); 22 23 assertEq(frame.constructing, false); 24 frame = null; 25 26 await promise; 27 28 assertEq(!!frame, true); 29 // Throws because the frame has terminated. 30 assertThrowsInstanceOf(() => frame.constructing, Error); 31 })();