onExceptionUnwind-01.js (711B)
1 // Basic onExceptionUnwind hook test. 2 3 load(libdir + "asserts.js"); 4 5 var g = newGlobal({newCompartment: true}); 6 var dbg = Debugger(g); 7 var hit = false; 8 dbg.onExceptionUnwind = function (frame, exc) { 9 // onExceptionUnwind is called multiple times as the stack is unwound. 10 // Only check the first hit. 11 assertEq(arguments.length, 2); 12 assertEq(frame instanceof Debugger.Frame, true); 13 if (!hit) { 14 assertEq(exc, 101); 15 assertEq(frame.type, "call"); 16 assertEq(frame.callee.name, "f"); 17 assertEq(frame.older.type, "eval"); 18 hit = true; 19 } 20 }; 21 22 g.eval("function f() { throw 101; }"); 23 assertThrowsValue(function () { g.eval("f();"); }, 101); 24 assertEq(hit, true);