// 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);
