michael@0: // uncaughtExceptionHook returns a resumption value. michael@0: michael@0: load(libdir + "asserts.js"); michael@0: michael@0: var g = newGlobal(); michael@0: var dbg = new Debugger(g); michael@0: var rv; michael@0: dbg.onDebuggerStatement = function () { throw 15; }; michael@0: dbg.uncaughtExceptionHook = function (exc) { michael@0: assertEq(exc, 15); michael@0: return rv; michael@0: }; michael@0: michael@0: // case 1: undefined michael@0: rv = undefined; michael@0: g.eval("debugger"); michael@0: michael@0: // case 2: throw michael@0: rv = {throw: 57}; michael@0: var result; michael@0: assertThrowsValue(function () { g.eval("debugger"); }, 57); michael@0: michael@0: // case 3: return michael@0: rv = {return: 42}; michael@0: assertEq(g.eval("debugger;"), 42);