// Test optimized RetSub stubs.
var count = 0;
function f(x) {
    try {
	if (x < 0)
	    throw "negative";
	if (x & 1)
	    return "odd";
	count++;
    } finally {
	count += 3;
    }

    return "even";
}
for (var i=0; i<15; i++) {
    var res = f(i);
    if ((i % 2) === 0)
	assertEq(res, "even");
    else
	assertEq(res, "odd");
}
try {
    f(-1);
    assertEq(0, 1);
} catch(e) {
    assertEq(e, "negative");
}

assertEq(count, 56);