michael@0: enableOsiPointRegisterChecks(); michael@0: michael@0: function convertToInt(str) { michael@0: return str | 0; michael@0: } michael@0: michael@0: function convertToIntOnTrace(str) { michael@0: var z; michael@0: for (var i = 0; i < 9; ++i) { michael@0: z = str | 0; michael@0: } michael@0: return z; michael@0: } michael@0: michael@0: function convertToDouble(str) { michael@0: return str * 1.5; michael@0: } michael@0: michael@0: function convertToDoubleOnTrace(str) { michael@0: var z; michael@0: for (var i = 0; i < 9; ++i) { michael@0: z = str * 1.5; michael@0: } michael@0: return z; michael@0: } michael@0: michael@0: assertEq(convertToInt("0x10"), 16); michael@0: assertEq(convertToInt("-0x10"), 0); michael@0: michael@0: assertEq(convertToIntOnTrace("0x10"), 16); michael@0: assertEq(convertToIntOnTrace("-0x10"), 0); michael@0: michael@0: assertEq(convertToDouble("0x10"), 24); michael@0: assertEq(convertToDouble("-0x10"), NaN); michael@0: michael@0: assertEq(convertToDoubleOnTrace("0x10"), 24); michael@0: assertEq(convertToDoubleOnTrace("-0x10"), NaN);