1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/js/src/jit-test/tests/ion/bug939868-2.js Wed Dec 31 06:09:35 2014 +0100 1.3 @@ -0,0 +1,47 @@ 1.4 +function f(x,y,z) { 1.5 + var z; 1.6 + if (x) { 1.7 + if (y) { 1.8 + z = 0xfffffff; 1.9 + } else { 1.10 + z = 0xfffffff; 1.11 + } 1.12 + assertFloat32(z, false); 1.13 + } else { 1.14 + z = Math.fround(z); 1.15 + assertFloat32(z, true); 1.16 + } 1.17 + assertFloat32(z, false); 1.18 + return z; 1.19 +} 1.20 + 1.21 +function g(x,y,z) { 1.22 + var z; 1.23 + if (x) { 1.24 + if (y) { 1.25 + z = 3; 1.26 + } else { 1.27 + z = 6; 1.28 + } 1.29 + assertFloat32(z, false); 1.30 + } else { 1.31 + z = Math.fround(z); 1.32 + assertFloat32(z, true); 1.33 + } 1.34 + assertFloat32(z, true); 1.35 + return z; 1.36 +} 1.37 + 1.38 +setJitCompilerOption("ion.usecount.trigger", 50); 1.39 + 1.40 +for (var n = 100; n--; ) { 1.41 + assertEq(f(0,1,2), 2); 1.42 + assertEq(f(0,0,2), 2); 1.43 + assertEq(f(1,0,2), 0xfffffff); 1.44 + assertEq(f(1,1,2), 0xfffffff); 1.45 + 1.46 + assertEq(g(0,1,2), 2); 1.47 + assertEq(g(0,0,2), 2); 1.48 + assertEq(g(1,0,2), 6); 1.49 + assertEq(g(1,1,2), 3); 1.50 +}