Source code

Revision control

Copy as Markdown

Other Tools

function Obj1(x) { this.x = x; }
function f1() {
var arr = [], o = {};
for (var i=0; i<2500; i++) {
arr.push(new Obj1(o));
if (i < 15) {
arr[i].x = undefined;
arr[i].x = Math;
}
}
for (var i=0; i<2500; i++) {
var y = (i > 2000) ? undefined : o;
arr[i].x = y;
}
}
f1();
function f2() {
var arr = [], p = {};
for (var i=0; i<2500; i++) {
var x = (i < 2000) ? p : undefined;
var o = {x: x};
if (i < 5) {
o.x = undefined;
o.x = p;
}
arr.push(o);
}
for (var i=0; i<2500; i++) {
assertEq(arr[i].x, i < 2000 ? p : undefined);
}
}
f2();
function f3() {
var arr = [], p = {};
for (var i=0; i<2500; i++) {
var x = (i < 2000) ? p : true;
var o = {x: x};
if (i < 5) {
o.x = true;
o.x = p;
}
arr.push(o);
}
for (var i=0; i<2500; i++) {
assertEq(arr[i].x, i < 2000 ? p : true);
}
}
f3();