// If frame.onStep returns {throw:}, an exception is thrown in the debuggee.

load(libdir + "asserts.js");

var g = newGlobal();
g.eval("function h() { debugger; }\n" +
       "function f() {\n" +
       "    h();\n" +
       "    return 'fail';\n" +
       "}\n");

var dbg = Debugger(g);
dbg.onDebuggerStatement = function (frame) {
    frame.older.onStep = function () { return {throw: "pass"}; };
};

assertThrowsValue(g.f, "pass");