blob: 9e65685aba4df624485d567c9bf002523ad7a921 [file] [log] [blame]
//-------------------------------------------------------------------------------------------------------
// Copyright (C) Microsoft. All rights reserved.
// Licensed under the MIT license. See LICENSE.txt file in the project root for full license information.
//-------------------------------------------------------------------------------------------------------
function verify(x,y)
{
if(x != y)
{
WScript.Echo("ERROR: " + x + " != " + y );
}
else
{
WScript.Echo(x + " == " + y);
}
}
WScript.Echo(parseInt());
WScript.Echo(parseInt(""));
WScript.Echo(parseInt("a"));
WScript.Echo(parseInt("0x"));
WScript.Echo(parseInt("0xz"));
WScript.Echo(parseInt(2, 2));
WScript.Echo(parseInt(2,"blah"));
WScript.Echo(parseInt("e10"));
WScript.Echo(parseInt("100", 37));
WScript.Echo(parseInt("100", 1));
WScript.Echo(parseInt("100", -1));
WScript.Echo(parseInt("100", -1000));
WScript.Echo(parseInt("100", 1000));
verify(0, parseInt("0"));
verify(0, parseInt("0z"));
verify(0, parseInt("-0"));
verify(0, parseInt("-0z"));
verify(0, parseInt(0));
verify(0, parseInt(-0)); // -0 to "0" to 0
// Verify again with 1 / 0 because 0 === -0 and we want to make sure that the sign is correct
verify(1 / 0, 1 / parseInt("0"));
verify(1 / -0, 1 / parseInt("-0"));
verify(1 / 0, 1 / parseInt(0));
verify(1 / 0, 1 / parseInt(-0)); // 1 / (-0 to "0" to 0) == +Infinity
verify(1, parseInt("1"));
verify(-1, parseInt("-1"));
verify(-1, parseInt(" -1"));
verify(-1, parseInt("\r\n\t\r\n \r\n\t-1"));
verify(2, parseInt("2"));
verify(-3, parseInt("-3"));
verify(536870911, parseInt("536870911"));
verify(536870912, parseInt("536870912"));
verify(-536870912, parseInt("-536870912"));
verify(-536870913, parseInt("-536870913"));
verify(0x7fffffff, parseInt("2147483647"));
verify(-0x80000000, parseInt("-2147483648"));
verify(0x15, parseInt("0x15"));
verify(0x15, parseInt("0X15"));
verify(12, parseInt("12.5"));
verify(128, parseInt("10000000", 2));
verify(480815, parseInt("aAzZ", 36));
verify(480815, parseInt("aAzZ", " 00036"));
verify(13929, parseInt("bcY", new Number(35)));
verify(16, parseInt("g", new String("17")));
verify(0, parseInt("08")); // classic behavior
verify(8, parseInt("010")); // classic behavior
verify(8, parseInt(08));
verify(8, parseInt(010));
verify(0, parseInt("0x123", "10"));
verify(291, parseInt("0x123"));
verify(12, parseInt(new String("12")));
verify(-12, parseInt(new Number(-12)));
function isNegZero(n)
{
return ((n === 0) && (1/n === -Infinity))
}
var i = 0;
var ni = -i;
WScript.Echo(isNegZero(ni));
WScript.Echo(isNegZero(parseInt(ni)));