// frame.eval throws if frame is a generator frame that isn't currently on the stack load(libdir + "asserts.js"); var g = newGlobal({newCompartment: true}); g.eval("function* gen(a) { debugger; yield a; }"); g.eval("function test() { debugger; }"); var dbg = new Debugger(g); var genframe; var hits = 0; dbg.onDebuggerStatement = function (frame) { if (frame.callee.name == 'gen') genframe = frame; else assertThrowsInstanceOf(function () { genframe.eval("a"); }, Error); hits++; }; g.eval("var it = gen(42); assertEq(it.next().value, 42); test();"); assertEq(hits, 2);