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

var v1 = 100;
var v2 = 200;
var flag = false;
var o1 = {
    get f() {
        if (flag)
            throw new Error("gotcha!");
        return v1;    
    }
}

function a() { return "a"; }
noInline(a);
function b() { return "b"; }
noInline(b);
function c() { return "c"; }
noInline(c);
function d() { return "d"; }
noInline(d);
function e() { return "e"; }
noInline(e);
function f() { return "f"; }
noInline(f);
function g() { return "g"; }
noInline(g);

var o2 = {
    get f() {
        assert(true);
        assert(true);
        assert(true);
        assert(true);
        assert(true);
        assert(true);
        assert(true);
        return v2;
    }
}

function foo(o) {
    try {
        var _a = a();
        var _b = b();
        var _c = c();
        var _d = d();
        var _e = e();
        var _f = f();
        var _g = g();

        o = o.f;

    } catch(e) {
        assert(o === o1);
        assert(_b === "b");
        assert(_c === "c");
        assert(_d === "d");
        assert(_e === "e");
        assert(_f === "f");
        assert(_g === "g");
    }
}
noInline(foo);

for (var i = 0; i < 1000000; i++)
    foo(i % 2 ? o1 : o2);
flag = true;
foo(o1);
