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