|
1 // If debugger.onEnterFrame returns {throw:val}, an exception is thrown in the debuggee. |
|
2 |
|
3 load(libdir + "asserts.js"); |
|
4 |
|
5 var g = newGlobal(); |
|
6 g.set = false; |
|
7 g.eval("function f() {\n" + |
|
8 " set = true;\n" + |
|
9 " return 'fail';\n" + |
|
10 "}\n"); |
|
11 |
|
12 var dbg = Debugger(g); |
|
13 var savedFrame; |
|
14 dbg.onEnterFrame = function (frame) { |
|
15 savedFrame = frame; |
|
16 return {throw: "pass"}; |
|
17 }; |
|
18 |
|
19 savedFrame = undefined; |
|
20 assertThrowsValue(g.f, "pass"); |
|
21 assertEq(savedFrame.live, false); |
|
22 assertEq(g.set, false); |
|
23 |
|
24 savedFrame = undefined; |
|
25 assertThrowsValue(function () { new g.f; }, "pass"); |
|
26 assertEq(savedFrame.live, false); |
|
27 assertEq(g.set, false); |
|
28 |