Index: test/mjsunit/compiler/deopt-bool2.js |
diff --git a/test/mjsunit/compiler/deopt-bool2.js b/test/mjsunit/compiler/deopt-bool2.js |
new file mode 100644 |
index 0000000000000000000000000000000000000000..4d1c41e3235c33a71aa6cdd40d735d53520ddea7 |
--- /dev/null |
+++ b/test/mjsunit/compiler/deopt-bool2.js |
@@ -0,0 +1,31 @@ |
+// Copyright 2015 the V8 project authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+// Flags: --allow-natives-syntax |
+ |
+function foo(expected, x) { |
+ var passed = expected.length == x.length; |
+ for (var i = 0; i < expected.length; i++) { |
+ if (passed) |
+ passed = expected[i] == x[i]; |
+ } |
+ print("a"); |
+ print(passed); |
+ |
+ %DeoptimizeFunction(foo); |
+ |
+ print("b"); |
+ print(passed); |
+ return passed; |
+} |
+ |
+assertTrue(foo([0,1], [0,1])); |
+assertTrue(foo([0,2], [0,2])); |
+assertFalse(foo([0,2.25], [0,2.75])); |
+ |
+%OptimizeFunctionOnNextCall(foo); |
+ |
+assertTrue(foo([0,1], [0,1])); |
+assertTrue(foo([0,2], [0,2])); |
+assertFalse(foo([0,2.25], [0,2.75])); |