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

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

function identity(x) { 
    return x;
}
noInline(identity);

let o1 = {
    g: 20,
    y: 40,
    f: "get f"
};

let o2 = {
    g: "g",
    y: "y",
    get f() { 
        return "get f";
    }
}

let o4 = {};

let o3 = {
    get f() {
        throw new Error("blah"); 
    }
}

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

noInline(foo);
for (let i = 0; i < 100000; i++) {
    if (i % 3 == 0) {
        assert(foo(o1) === 60);
    } else if (i % 3 === 1) {
        assert(foo(o2) === "gy");
    } else {
        foo(o4);
    }
}

foo(o3);
