Source code

Revision control

Copy as Markdown

Other Tools

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);