Source code

Revision control

Copy as Markdown

Other Tools

// Same thing but it needs to reconstruct multiple stack frames (so,
// multiple functions called inside the loop)
function testSlowArrayPopMultiFrame() {
var a = [];
for (var i = 0; i < 9; i++)
a[i] = [0];
a[8].__defineGetter__("0", function () { return 23; });
function child(a, i) {
return a[i].pop(); // reenters interpreter in getter
}
function parent(a, i) {
return child(a, i);
}
function gramps(a, i) {
return parent(a, i);
}
var last;
for (var i = 0; i < 9; i++)
last = gramps(a, i);
return last;
}
assertEq(testSlowArrayPopMultiFrame(), 23);