--- /dev/null
+(function() {
+ var o = {_f:42};
+ o.__defineSetter__("f", function(value) { this._f = value * 100; });
+ var n = 50000;
+ function foo(o_, v_) {
+ var o = o_.f;
+ var v = v_.f;
+ o.f = v;
+ o.f = v + 1;
+ }
+ noInline(foo);
+ for (var i = 0; i < n; ++i) {
+ foo({f:o}, {f:11});
+ }
+ if (o._f != (11 + 1) * 100)
+ throw "Error: bad o._f: " + o._f;
+ for (var i = 0; i < n; ++i) {
+ foo({f:o}, {f:1000000000});
+ }
+ if (o._f != 100 * (1000000000 + 1))
+ throw "Error: bad o._f (2): " + o._f;
+})();
+