|
1 // Basic onExceptionUnwind hook test. |
|
2 |
|
3 load(libdir + "asserts.js"); |
|
4 |
|
5 var g = newGlobal(); |
|
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); |