michael@0: michael@0: /* Recompilation while being processed by property ICs. */ michael@0: michael@0: var ga = 10; michael@0: var gb = 10; michael@0: michael@0: Object.defineProperty(Object.prototype, "a", { michael@0: set: function(a) { eval("ga = true;"); }, michael@0: get: function() { eval("gb = true;"); } michael@0: }); michael@0: michael@0: function foo() { michael@0: var x = {}; michael@0: x.a = 10; michael@0: assertEq(ga + 1, 2); michael@0: } michael@0: foo(); michael@0: michael@0: function bar() { michael@0: var x = {}; michael@0: var a = x.a; michael@0: assertEq(gb + 1, 2); michael@0: } michael@0: bar();