summaryrefslogtreecommitdiffstats
path: root/js/src/jit-test/tests/baseline/try-finally-osr.js
blob: 4a58aec71102bd136379fd317856cc0939fdde1c (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
25
26
27
28
29
var count = 0;

// OSR into a finally block should not throw away the frame's
// return value.
function test1() {
    try {
	return [1, 2, 3];
    } finally {
	for (var i=0; i<20; i++) { count++; }
    }
}
assertEq(test1().toString(), "1,2,3");
assertEq(count, 20);

// OSR into the finally block, with exception pending.
function test2() {
    try {
	throw 3;
    } finally {
	for (var i=0; i<20; i++) { count++; }
    }
}
try {
    test2();
    assertEq(0, 1);
} catch(e) {
    assertEq(e, 3);
}
assertEq(count, 40);