Frame-onStack-06.js (633B)
1 // frame.onStack is false for generator frames after they return. 2 3 let g = newGlobal({newCompartment: true}); 4 g.eval("function* f() { debugger; }"); 5 6 let dbg = Debugger(g); 7 let savedFrame; 8 9 dbg.onDebuggerStatement = frame => { 10 savedFrame = frame; 11 assertEq(frame.callee.name, "f"); 12 assertEq(frame.onStack, true); 13 frame.onPop = function() { 14 assertEq(frame.onStack, true); 15 }; 16 }; 17 g.f().next(); 18 19 assertEq(savedFrame.onStack, false); 20 try { 21 savedFrame.older; 22 throw new Error("expected exception, none thrown"); 23 } catch (exc) { 24 assertEq(exc.message, "Debugger.Frame is not on stack or suspended"); 25 }