michael@0: var a = [1, 2, 3, 4]; michael@0: var count = 0; michael@0: michael@0: function f(arr, i) { michael@0: arr[2] = i; michael@0: } michael@0: michael@0: for (var i=0; i<80; i++) { michael@0: f(a, i); michael@0: assertEq(a[2], i); michael@0: } michael@0: michael@0: delete a[2]; michael@0: f(a, 50); michael@0: assertEq(a[2], 50); michael@0: michael@0: Object.defineProperty(Object.prototype, "2", { michael@0: set: function() { count++; } michael@0: }); michael@0: delete a[2]; michael@0: michael@0: f(a, 100); michael@0: f(a, 100); michael@0: michael@0: assertEq(a[2], undefined); michael@0: assertEq(count, 2);