function f() {
    return 20; 
}
noInline(f);

function bar(b) { 
    if (b)
        throw new Error("blah!");
}

function Foo(b) {
    try {
        this.value = bar(b);
    } catch(e) {
        this.value = e.toString();
    }

    f(this.value, b);
}
noInline(Foo);


for (var i = 1; i < 1000; i++) {
    let value = new Foo(i % 3 === 0);
    if (i % 3 === 0 && value.value !==  "Error: blah!")
        throw new Error("bad value: " + value.value);
}
