function foo(o, a) {
    let resetFlag = false;
    if (flag) {
        resetFlag = true;
        flag = false;
    }
    let x = o(10);
    let y = o(20);
    if (resetFlag)
        flag = true;
    try {
        o.apply(null, a);
    } catch(e) {
        if (x !== 10)
            throw new Error("Not 10")
        return x + y;
    }
}
noInline(foo);
var flag = false;
function f(arg1, arg2, arg3) {
    if (flag)
        throw new Error("blah")
    return arg1;
}
noInline(f);

for (let i = 0; i < 100000; i++) {
    foo(f, [10, 20, 30]);
}
flag = true;
foo(f, [10, 20, 30]);
