function assert(b) {
    if (!b)
        throw new Error("bad value")
}
noInline(assert);

function random() { 
    return "blah";
}
noInline(random);

function foo(o, a) {
    let x = o.g;
    let y = o.y;
    let j = random();
    try {
        j = o.f;
    } catch(e) {
        assert(j === "blah");
        return x + y + 1;
    }
    return x + y;
}

noInline(foo);
var flag = false;
function f(arg1, arg2, arg3) {
    if (flag)
        throw new Error("blah")
    return arg1;
}
noInline(f);
let o1 = {
    g: 20,
    y: 40,
    f: "get f"
};

let o2 = {
    g: "g",
    y: "y",
    get f() { 
        if (flag) 
            throw new Error("blah"); 
        return "get f";
    }
}

for (let i = 0; i < 100000; i++) {
    if (i % 2) {
        assert(foo(o1) === 60);
    } else {
        assert(foo(o2) === "gy");
    }
}
flag = true;
assert(foo(o2) === "gy1");
