Index: test/mjsunit/regress/regress-crbug-648737.js |
diff --git a/test/mjsunit/regress/regress-crbug-648737.js b/test/mjsunit/regress/regress-crbug-648737.js |
new file mode 100644 |
index 0000000000000000000000000000000000000000..22f85515435e3a733265cd756f0720ba4790e8d1 |
--- /dev/null |
+++ b/test/mjsunit/regress/regress-crbug-648737.js |
@@ -0,0 +1,24 @@ |
+// Copyright 2016 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 --turbo --turbo-escape |
+ |
+function f(str) { |
+ var s = "We turn {" + str + "} into a ConsString now"; |
+ return s.length; |
+} |
+assertEquals(33, f("a")); |
+assertEquals(33, f("b")); |
+%OptimizeFunctionOnNextCall(f); |
+assertEquals(33, f("c")); |
+ |
+function g(str) { |
+ var s = "We also try to materalize {" + str + "} when deopting"; |
+ %DeoptimizeNow(); |
+ return s.length; |
+} |
+assertEquals(43, g("a")); |
+assertEquals(43, g("b")); |
+%OptimizeFunctionOnNextCall(g); |
+assertEquals(43, g("c")); |