|
1 // |jit-test| |
|
2 |
|
3 // If an exception unwind hook performs a forced return, and this calls an |
|
4 // onPop handler that throws, the exception should not be handled in the |
|
5 // current frame but propagated to the caller. |
|
6 var g = newGlobal(); |
|
7 var dbg = new Debugger(g); |
|
8 |
|
9 g.eval('function f() { try { var y; throw 123; } catch(e) { assertEq(0, 1); } }'); |
|
10 |
|
11 dbg.onExceptionUnwind = function(frame) { |
|
12 frame.onPop = function() { |
|
13 return {throw: 321}; |
|
14 } |
|
15 |
|
16 return {return: 11}; |
|
17 }; |
|
18 |
|
19 try { |
|
20 g.f(); |
|
21 assertEq(0, 1); |
|
22 } catch(e) { |
|
23 assertEq(e.toString().contains("321"), true); |
|
24 } |