michael@0: // An earlier onNewGlobalObject handler returning a 'throw' resumption michael@0: // value causes later handlers not to run. michael@0: michael@0: load(libdir + 'asserts.js'); michael@0: michael@0: var dbg1 = new Debugger; michael@0: var dbg2 = new Debugger; michael@0: var dbg3 = new Debugger; michael@0: var log; michael@0: var count; michael@0: michael@0: dbg1.onNewGlobalObject = dbg2.onNewGlobalObject = dbg3.onNewGlobalObject = function (global) { michael@0: count++; michael@0: log += count; michael@0: if (count == 2) michael@0: return { throw: "snoo" }; michael@0: return undefined; michael@0: }; michael@0: dbg2.uncaughtExceptionHook = function (exn) { michael@0: assertEq(/disallowed/.test(exn), true); michael@0: log += 'u'; michael@0: }; michael@0: michael@0: log = ''; michael@0: count = 0; michael@0: assertEq(typeof newGlobal(), "object"); michael@0: assertEq(log, '12u3');