bug842431-3.js (598B)
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({newCompartment: true}); 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().includes("321"), true); 24 }