function f(o) {
    var res = 0;
    for (var i=0; i<110; i++) {
        res += o.x;
    }
    return res;
}

function O(x) {
    if ([].length == 0) // Thwart definite slot analysis.
        this.x = 10;
}

var o = new O(true);
f(o);

// Add a getter, this should invalidate the script containing the idempotent cache.
var res = 0;
o.__defineGetter__("x", function() { res++; });
f(o);
assertEq(res, 110);