parseInt-parseFloat.js (1668B)
1 function toLatin1(s) { 2 assertEq(isLatin1(s), true); 3 return s; 4 } 5 function testParseInt() { 6 // Latin1 7 assertEq(parseInt(toLatin1("12345abc")), 12345); 8 assertEq(parseInt(toLatin1("0x5")), 0x5); 9 assertEq(parseInt(toLatin1("-123")), -123); 10 assertEq(parseInt(toLatin1("xyz")), NaN); 11 assertEq(parseInt(toLatin1("1234GHI"), 17), 94298); 12 assertEq(parseInt(toLatin1("9007199254749999")), 9007199254750000); 13 assertEq(parseInt(toLatin1(" 9007199254749998"), 16), 10378291982571444000); 14 15 // TwoByte 16 assertEq(parseInt("12345abc\u1200"), 12345); 17 assertEq(parseInt("0x5\u1200"), 0x5); 18 assertEq(parseInt(" -123\u1200"), -123); 19 assertEq(parseInt("\u1200"), NaN); 20 assertEq(parseInt("1234GHI\u1200", 17), 94298); 21 assertEq(parseInt("9007199254749999\u1200"), 9007199254750000); 22 assertEq(parseInt(" 9007199254749998\u1200", 16), 10378291982571444000); 23 } 24 testParseInt(); 25 26 function testParseFloat() { 27 // Latin1 28 assertEq(parseFloat(toLatin1("3.1415")), 3.1415); 29 assertEq(parseFloat(toLatin1(" -1234")), -1234); 30 assertEq(parseFloat(toLatin1("\u00AA")), NaN); 31 assertEq(parseFloat(toLatin1("Infinityabc")), Infinity); 32 assertEq(parseFloat(toLatin1("-Infinity")), -Infinity); 33 assertEq(parseFloat(toLatin1("\t\t\t+Infinity")), Infinity); 34 35 // TwoByte 36 assertEq(parseFloat("3.1415\u0FFF"), 3.1415); 37 assertEq(parseFloat(" -1234\u0FFF"), -1234); 38 assertEq(parseFloat("\u00AA\u0FFF"), NaN); 39 assertEq(parseFloat("Infinityabc\u0FFF"), Infinity); 40 assertEq(parseFloat("-Infinity\u0FFF"), -Infinity); 41 assertEq(parseFloat("\t\t\t+Infinity\u0FFF"), Infinity); 42 } 43 testParseFloat();