| //------------------------------------------------------------------------------------------------------- |
| // Copyright (C) Microsoft. All rights reserved. |
| // Licensed under the MIT license. See LICENSE.txt file in the project root for full license information. |
| //------------------------------------------------------------------------------------------------------- |
| |
| // A specific case that was regressed |
| var toSubtract = 1099511627776; |
| writeLine("toSubtract:\n " + toSubtract); |
| var toMultiply = 0.840812748240128; |
| writeLine("toMultiply:\n " + toMultiply); |
| var powResult = Math.pow(2, 55); |
| writeLine("powResult:\n " + powResult); |
| var subtracted = powResult - toSubtract; |
| writeLine("subtracted:\n " + subtracted); |
| var multiplied = toMultiply * subtracted; |
| writeLine("multiplied:\n " + multiplied); |
| var stringed = "" + multiplied; |
| writeLine("stringed:\n " + stringed); |
| var evaled = eval(stringed); |
| writeLine("evaled:\n " + evaled); |
| |
| (function testInlineParameterSideEffects() { |
| function foo(){ |
| var a = 12345; |
| var x = Math.pow(a, 1 >> (a = 0)); |
| return x; |
| } |
| var x = foo(); |
| WScript.Echo("testInlineParameterSideEffects:\n " + x); |
| })(); |
| |
| (function testInlineWin8_748804() { |
| var result; |
| function decimalToHexString(n) { |
| for (var i = 1; i >= 1; --i) { |
| if (n >= Math.pow(16, i)) { |
| var t = Math.floor(n / Math.pow(16, i)); |
| result = t; |
| n = t * Math.pow(16, i); |
| } |
| } |
| } |
| decimalToHexString(0xDF); |
| WScript.Echo("testInlineWin8_748804:\n " + result); |
| })(); |
| |
| safeCall(function testInlineMathBuiltinCalledAsConstructor() { |
| var x = new Math.sin(0); |
| }); |
| |
| // Helpers |
| |
| function writeLine(str) |
| { |
| WScript.Echo("" + str); |
| } |
| |
| function safeCall(f) { |
| var args = []; |
| for(var a = 1; a < arguments.length; ++a) |
| args.push(arguments[a]); |
| try { |
| return f.apply(this, args); |
| } catch(ex) { |
| writeLine(ex.name); |
| } |
| } |