var a = [1, 2, 3, 4];
var count = 0;

function f(arr, i) {
    arr[2] = i;
}

for (var i=0; i<80; i++) {
    f(a, i);
    assertEq(a[2], i);
}

delete a[2];
f(a, 50);
assertEq(a[2], 50);

Object.defineProperty(Object.prototype, "2", {
    set: function() { count++; }
});
delete a[2];

f(a, 100);
f(a, 100);

assertEq(a[2], undefined);
assertEq(count, 2);