Index: test/mjsunit/regress/regress-3307.js |
diff --git a/test/mjsunit/regress/regress-check-eliminate-loop-phis.js b/test/mjsunit/regress/regress-3307.js |
similarity index 54% |
copy from test/mjsunit/regress/regress-check-eliminate-loop-phis.js |
copy to test/mjsunit/regress/regress-3307.js |
index 3791c35f71ccfc50dd384978e449103b39f6bff7..eba16cd7b9c3d8e456eed1a89e09dfcc8f07831b 100644 |
--- a/test/mjsunit/regress/regress-check-eliminate-loop-phis.js |
+++ b/test/mjsunit/regress/regress-3307.js |
@@ -4,18 +4,21 @@ |
// Flags: --allow-natives-syntax |
+function p(x) { |
+ this.x = x; |
+} |
+ |
function f() { |
- var o = {x:1}; |
- var y = {y:2.5, x:0}; |
- var result; |
- for (var i = 0; i < 2; i++) { |
- result = o.x + 3; |
- o = y; |
+ var a = new p(1), b = new p(2); |
+ for (var i = 0; i < 1; i++) { |
+ a.x += b.x; |
} |
- return result; |
+ return a.x; |
} |
-f(); |
-f(); |
+new p(0.1); // make 'x' mutable box double field in p. |
+ |
+assertEquals(3, f()); |
+assertEquals(3, f()); |
%OptimizeFunctionOnNextCall(f); |
assertEquals(3, f()); |