summaryrefslogtreecommitdiffstats
path: root/js/src/jit-test/tests/ion/bug939868-2.js
diff options
context:
space:
mode:
Diffstat (limited to 'js/src/jit-test/tests/ion/bug939868-2.js')
-rw-r--r--js/src/jit-test/tests/ion/bug939868-2.js47
1 files changed, 47 insertions, 0 deletions
diff --git a/js/src/jit-test/tests/ion/bug939868-2.js b/js/src/jit-test/tests/ion/bug939868-2.js
new file mode 100644
index 000000000..8ba8d7bc2
--- /dev/null
+++ b/js/src/jit-test/tests/ion/bug939868-2.js
@@ -0,0 +1,47 @@
+function f(x,y,z) {
+ var z;
+ if (x) {
+ if (y) {
+ z = 0xfffffff;
+ } else {
+ z = 0xfffffff;
+ }
+ assertFloat32(z, false);
+ } else {
+ z = Math.fround(z);
+ assertFloat32(z, true);
+ }
+ assertFloat32(z, false);
+ return z;
+}
+
+function g(x,y,z) {
+ var z;
+ if (x) {
+ if (y) {
+ z = 3;
+ } else {
+ z = 6;
+ }
+ assertFloat32(z, false);
+ } else {
+ z = Math.fround(z);
+ assertFloat32(z, true);
+ }
+ assertFloat32(z, true);
+ return z;
+}
+
+setJitCompilerOption("ion.warmup.trigger", 50);
+
+for (var n = 100; n--; ) {
+ assertEq(f(0,1,2), 2);
+ assertEq(f(0,0,2), 2);
+ assertEq(f(1,0,2), 0xfffffff);
+ assertEq(f(1,1,2), 0xfffffff);
+
+ assertEq(g(0,1,2), 2);
+ assertEq(g(0,0,2), 2);
+ assertEq(g(1,0,2), 6);
+ assertEq(g(1,1,2), 3);
+}