1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/js/src/jit-test/tests/ion/truncateToInt32.js Wed Dec 31 06:09:35 2014 +0100 1.3 @@ -0,0 +1,46 @@ 1.4 +// vim: set ts=8 sts=4 et sw=4 tw=99: 1.5 + 1.6 +function w(y) 1.7 +{ 1.8 + var x = 23.5; 1.9 + return x & y; 1.10 +} 1.11 + 1.12 +function f(x, y) { 1.13 + // Confuse the type analysis to not know the type of x. 1.14 + var t = 3.5 + x; 1.15 + t + 3.5; 1.16 + return x & y; 1.17 +} 1.18 + 1.19 +function g_bool(x, y) { 1.20 + var t; 1.21 + if (x + 0) 1.22 + t = true; 1.23 + else 1.24 + t = false; 1.25 + return t & y; 1.26 + 1.27 +} 1.28 + 1.29 +function g_null(x) { 1.30 + return null & x; 1.31 +} 1.32 + 1.33 +var obj = { valueOf: function () { return 5; } } 1.34 + 1.35 +assertEq(w(93), 21); 1.36 +assertEq(g_bool(1, 3), 1); 1.37 +assertEq(g_bool(0, 3), 0); 1.38 +assertEq(g_null(2), 0); 1.39 + 1.40 +assertEq(f(1, 7), 1); 1.41 +assertEq(f(true, 7), 1); 1.42 +assertEq(f(false, 7), 0); 1.43 +assertEq(f("3", 7), 3); 1.44 +assertEq(f(obj, 7), 5); 1.45 +assertEq(f(3.5, 7), 3); 1.46 +assertEq(f(undefined, 7), 0); 1.47 +assertEq(f(null, 7), 0); 1.48 +assertEq(f(Math.NaN, 7), 0); 1.49 +