summaryrefslogtreecommitdiffstats
path: root/js/src/jit-test/tests/ion/bug1239075.js
diff options
context:
space:
mode:
Diffstat (limited to 'js/src/jit-test/tests/ion/bug1239075.js')
-rw-r--r--js/src/jit-test/tests/ion/bug1239075.js29
1 files changed, 29 insertions, 0 deletions
diff --git a/js/src/jit-test/tests/ion/bug1239075.js b/js/src/jit-test/tests/ion/bug1239075.js
new file mode 100644
index 000000000..d8e3a8868
--- /dev/null
+++ b/js/src/jit-test/tests/ion/bug1239075.js
@@ -0,0 +1,29 @@
+
+function g0() { with({}){}; }
+function f0(y, x) {
+ var a = y >>> 0;
+ a = a - 1 + 1;
+ g0(); // Capture the truncate result after the call.
+ var b = x / 2; // bailout.
+ return ~(a + b);
+}
+assertEq(f0(-1, 0), 0);
+assertEq(f0(-1, 1), 0);
+
+
+function g1() { with({}){}; }
+function f1(y, x) {
+ var a = y >>> 0;
+ a = a - 1 + 1;
+ g1(); // Capture the truncate result after the call.
+ var b = Math.pow(x / 2, x); // bailout.
+ return ~(a + b);
+}
+assertEq(f1(-1, 0), -1);
+assertEq(f1(-1, 1), 0);
+
+function f2(x) {
+ return ~(((~0 | 0) >>> 0 || 0) + Math.pow(Math.cos(x >>> 0), Math.atan2(0, x)))
+}
+assertEq(f2(0), -1);
+assertEq(f2(-9999), 0);