Index: test/mjsunit/regress/regress-3204.js |
diff --git a/test/mjsunit/regress/regress-3204.js b/test/mjsunit/regress/regress-3204.js |
index dc754ff2d768b9eefb0f3493043b1cb32b82ed9e..b3161be497040e07caaaeca194829c887de21b67 100644 |
--- a/test/mjsunit/regress/regress-3204.js |
+++ b/test/mjsunit/regress/regress-3204.js |
@@ -4,6 +4,21 @@ |
// Flags: --allow-natives-syntax |
+// ----------------------------------------------------------------------------- |
+ |
+function SmiTaggingCanOverflow(x) { |
+ x = x | 0; |
+ if (x == 0) return; |
+ return x; |
+} |
+ |
+SmiTaggingCanOverflow(2147483647); |
+SmiTaggingCanOverflow(2147483647); |
+%OptimizeFunctionOnNextCall(SmiTaggingCanOverflow); |
+assertEquals(2147483647, SmiTaggingCanOverflow(2147483647)); |
+ |
+// ----------------------------------------------------------------------------- |
+ |
function ModILeftCanBeNegative() { |
var x = 0; |
for (var i = -1; i < 0; ++i) x = i % 2; |
@@ -14,6 +29,8 @@ ModILeftCanBeNegative(); |
%OptimizeFunctionOnNextCall(ModILeftCanBeNegative); |
assertEquals(-1, ModILeftCanBeNegative()); |
+// ----------------------------------------------------------------------------- |
+ |
function ModIRightCanBeZero() { |
var x = 0; |
for (var i = -1; i <= 0; ++i) x = (2 % i) | 0; |