michael@0: function f(x,y,z) { michael@0: var z; michael@0: if (x) { michael@0: if (y) { michael@0: z = 0xfffffff; michael@0: } else { michael@0: z = 0xfffffff; michael@0: } michael@0: assertFloat32(z, false); michael@0: } else { michael@0: z = Math.fround(z); michael@0: assertFloat32(z, true); michael@0: } michael@0: assertFloat32(z, false); michael@0: return z; michael@0: } michael@0: michael@0: function g(x,y,z) { michael@0: var z; michael@0: if (x) { michael@0: if (y) { michael@0: z = 3; michael@0: } else { michael@0: z = 6; michael@0: } michael@0: assertFloat32(z, false); michael@0: } else { michael@0: z = Math.fround(z); michael@0: assertFloat32(z, true); michael@0: } michael@0: assertFloat32(z, true); michael@0: return z; michael@0: } michael@0: michael@0: setJitCompilerOption("ion.usecount.trigger", 50); michael@0: michael@0: for (var n = 100; n--; ) { michael@0: assertEq(f(0,1,2), 2); michael@0: assertEq(f(0,0,2), 2); michael@0: assertEq(f(1,0,2), 0xfffffff); michael@0: assertEq(f(1,1,2), 0xfffffff); michael@0: michael@0: assertEq(g(0,1,2), 2); michael@0: assertEq(g(0,0,2), 2); michael@0: assertEq(g(1,0,2), 6); michael@0: assertEq(g(1,1,2), 3); michael@0: }