Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1105)

Unified Diff: test/mjsunit/compiler/math-sign.js

Issue 2294143004: [turbofan] Fix Math.sign. (Closed)
Patch Set: Created 4 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « src/compiler/simplified-lowering.cc ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: test/mjsunit/compiler/math-sign.js
diff --git a/test/mjsunit/compiler/math-sign.js b/test/mjsunit/compiler/math-sign.js
new file mode 100644
index 0000000000000000000000000000000000000000..0fff0982df8832fa6ec73a10b82665b60552603f
--- /dev/null
+++ b/test/mjsunit/compiler/math-sign.js
@@ -0,0 +1,51 @@
+// 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
+
+function signInt32(i) {
+ i = i|0;
+ return Math.sign(i);
+}
+
+signInt32(0);
+signInt32(2);
+%OptimizeFunctionOnNextCall(signInt32);
+assertEquals(1, signInt32(1));
+assertEquals(0, signInt32(0));
+assertEquals(-1, signInt32(-1));
+assertEquals(-1, signInt32(-1));
+assertEquals(1, signInt32(2147483647));
+assertEquals(-1, signInt32(2147483648));
+assertEquals(-1, signInt32(-2147483648));
+assertEquals(0, signInt32(NaN));
+assertEquals(0, signInt32(undefined));
+assertEquals(0, signInt32(-0));
+
+function signFloat64(i) {
+ return Math.sign(+i);
+}
+
+signFloat64(0.1);
+signFloat64(-0.1);
+%OptimizeFunctionOnNextCall(signFloat64);
+assertEquals(1, signFloat64(1));
+assertEquals(1, signFloat64(0.001));
+assertEquals(-1, signFloat64(-0.002));
+assertEquals(1, signFloat64(1e100));
+assertEquals(-1, signFloat64(-2e100));
+assertEquals(0, signFloat64(0));
+assertEquals(Infinity, 1/signFloat64(0));
+assertEquals(-1, signFloat64(-1));
+assertEquals(-1, signFloat64(-1));
+assertEquals(1, signFloat64(2147483647));
+assertEquals(1, signFloat64(2147483648));
+assertEquals(-1, signFloat64(-2147483647));
+assertEquals(-1, signFloat64(-2147483648));
+assertEquals(-1, signFloat64(-2147483649));
+assertEquals(-0, signFloat64(-0));
+assertEquals(NaN, signFloat64(NaN));
+assertEquals(NaN, signFloat64(undefined));
+assertEquals(1, signFloat64(Infinity));
+assertEquals(-1, signFloat64(-Infinity));
« no previous file with comments | « src/compiler/simplified-lowering.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698