summaryrefslogtreecommitdiffstats
path: root/js/src/jit-test/tests/baseline/bug842431-3.js
blob: 9cccdf06097e8bfe790a3652d1ef75551b3f7ee3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
// |jit-test|

// If an exception unwind hook performs a forced return, and this calls an
// onPop handler that throws, the exception should not be handled in the
// current frame but propagated to the caller.
var g = newGlobal();
var dbg = new Debugger(g);

g.eval('function f() { try { var y; throw 123; } catch(e) { assertEq(0, 1); } }');

dbg.onExceptionUnwind = function(frame) {
    frame.onPop = function() {
	return {throw: 321};
    }

    return {return: 11};
};

try {
    g.f();
    assertEq(0, 1);
} catch(e) {
    assertEq(e.toString().includes("321"), true);
}