summaryrefslogtreecommitdiffstats
path: root/js/src/jit-test/tests/cacheir/string-number-arith.js
diff options
context:
space:
mode:
Diffstat (limited to 'js/src/jit-test/tests/cacheir/string-number-arith.js')
-rw-r--r--js/src/jit-test/tests/cacheir/string-number-arith.js32
1 files changed, 32 insertions, 0 deletions
diff --git a/js/src/jit-test/tests/cacheir/string-number-arith.js b/js/src/jit-test/tests/cacheir/string-number-arith.js
new file mode 100644
index 0000000000..ec1caf76ff
--- /dev/null
+++ b/js/src/jit-test/tests/cacheir/string-number-arith.js
@@ -0,0 +1,32 @@
+function test(half, minusOneHalf) {
+ assertEq(10 - half, 9.5);
+ assertEq(10 - minusOneHalf, 11.5);
+ assertEq(half - 0, 0.5);
+ assertEq(minusOneHalf - 1, -2.5);
+
+ assertEq(10 * half, 5);
+ assertEq(half * 10, 5);
+ assertEq(10 * minusOneHalf, -15);
+ assertEq(minusOneHalf * 10, -15);
+
+ assertEq(10 / half, 20);
+ assertEq(half / 1, 0.5);
+ assertEq(12 / minusOneHalf, -8);
+ assertEq(minusOneHalf / 1, -1.5);
+
+ assertEq(10 % half, 0);
+ assertEq(half % 1, 0.5);
+ assertEq(12 % minusOneHalf, 0);
+ assertEq(minusOneHalf % 1, -0.5);
+
+ assertEq(10 ** half, Math.sqrt(10));
+ assertEq(half ** 4, 0.0625);
+ assertEq(16 ** minusOneHalf, 0.015625);
+ assertEq(minusOneHalf ** 4, 5.0625);
+}
+
+for (var i = 0; i < 10; i++) {
+ test(0.5, -1.5);
+ test("0.5", "-1.5");
+ test("5e-1", "-15e-1");
+}