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