--- /dev/null
+function foo(p) {
+ var result = 0;
+ var o = {valueOf: function() { result = 1; }};
+ var q = {f: p ? o : 42};
+ var tmp = q.f + 1;
+ return result;
+}
+
+noInline(foo);
+
+for (var i = 0; i < 10000; ++i) {
+ var result = foo(false);
+ if (result !== 0)
+ throw "Error: bad result: " + result;
+}
+
+var result = foo(true);
+if (result !== 1)
+ throw "Error: bad result at end: " + result;
+