function foo(o) { return o.f + o.k * 1000; } noInline(foo); for (var i = 0; i < 100; ++i) { var o = {g_: 5}; o.__defineGetter__("f", function() { return 42 + this.g_; }); o.__defineGetter__("g", function() { return 43 + this.g_; }); o.__defineGetter__("h", function() { return 44 + this.g_; }); o.__defineGetter__("i", function() { return 45 + this.g_; }); o.__defineGetter__("j", function() { return 46 + this.g_; }); o.__defineGetter__("k", function() { return 47 + this.g_; }); var result = foo(o); if (result != (42 + 5) + 1000 * (47 + 5)) throw "Error: bad result: " + result; }