Index: test/mjsunit/compiler/regress-to-number-binop-deopt.js |
diff --git a/test/mjsunit/compiler/regress-to-number-binop-deopt.js b/test/mjsunit/compiler/regress-to-number-binop-deopt.js |
new file mode 100644 |
index 0000000000000000000000000000000000000000..f6b77d90829cf17587314d1fd0f2983698f4bdfa |
--- /dev/null |
+++ b/test/mjsunit/compiler/regress-to-number-binop-deopt.js |
@@ -0,0 +1,25 @@ |
+// 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 deopt(f) { |
+ return { valueOf : function() { %DeoptimizeFunction(f); return 1.1; } }; |
+} |
+ |
+function or_zero(o) { |
+ return o|0; |
+} |
+ |
+function multiply_one(o) { |
+ return +o; |
+} |
+ |
+function multiply_one_symbol() { |
+ return +Symbol(); |
+} |
+ |
+assertThrows(multiply_one_symbol, TypeError); |
+assertEquals(1, or_zero(deopt(or_zero))); |
+assertEquals(1.1, multiply_one(deopt(multiply_one))); |