blob: d774796cfc4b71fcaabeb3261dad26e947114760 [file] [log] [blame]
function foo(o) {
return o.f;
}
noInline(foo);
var p = {f:42};
var doBadThings = false;
function makeGetter() {
return function() {
if (doBadThings) {
delete p.f;
fullGC();
return 43;
}
return 42;
};
}
for (var i = 0; i < 10000; ++i) {
var o = Object.create(p);
if (i & 1) {
o.__defineGetter__("f", makeGetter());
}
var result = foo(o);
if (result != 42)
throw "Error: bad result: " + result;
}
var o = Object.create(p);
o.__defineGetter__("f", makeGetter());
doBadThings = true;
var result = foo(o);
if (result != 43)
throw "Error: bad result at end: " + result;