Source code
Revision control
Copy as Markdown
Other Tools
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);