michael@0: michael@0: function foo(x, y) { michael@0: var res = 0; michael@0: for (var i = 0; i < 10; i++) { michael@0: res += x.f + y[i]; michael@0: } michael@0: return res; michael@0: } michael@0: michael@0: var x = {f:0}; michael@0: var y = Array(10); michael@0: for (var i = 0; i < 10; i++) { michael@0: if (i == 5) michael@0: Object.defineProperty(Object.prototype, 5, {get: function() { x.f = 10; return 5}}); michael@0: else michael@0: y[i] = i; michael@0: } michael@0: michael@0: assertEq(foo(x, y), 85);