Index: test/mjsunit/str-to-num.js |
=================================================================== |
--- test/mjsunit/str-to-num.js (revision 4210) |
+++ test/mjsunit/str-to-num.js (working copy) |
@@ -29,6 +29,19 @@ |
return Number(val); |
} |
+function repeat(s, num) { |
+ var result = ''; |
+ while (num > 0) { |
+ if ((num & 1) != 0) result += s; |
+ s += s; |
+ num >>= 1; |
+ } |
+ |
+ return result; |
+} |
+ |
+assertEquals('0000000000', repeat('0', 10)); |
+ |
// assertEquals(, toNumber()); |
@@ -61,6 +74,7 @@ |
assertEquals(0, toNumber("0")); |
assertEquals(0, toNumber("+0")); |
assertEquals(-0, toNumber("-0")); |
+assertEquals(-Infinity, 1 / toNumber("-0")); |
assertEquals(1, toNumber("1")); |
assertEquals(1, toNumber("+1")); |
@@ -130,11 +144,16 @@ |
assertEquals(15, toNumber("0XF")); |
assertEquals(0, toNumber("0x000")); |
+assertEquals(-Infinity, 1 / toNumber("-0x000")); |
+assertEquals(0, toNumber("0x000" + repeat('0', 1000))); |
assertEquals(9, toNumber("0x009")); |
assertEquals(10, toNumber("0x00a")); |
assertEquals(10, toNumber("0x00A")); |
assertEquals(15, toNumber("0x00f")); |
assertEquals(15, toNumber("0x00F")); |
+assertEquals(Infinity, toNumber("0x" + repeat('0', 1000) + '1' |
+ + repeat('0', 1000))); |
+assertEquals(-Infinity, toNumber("-0x1" + repeat('0', 1000))); |
assertEquals(0, toNumber("00")); |
assertEquals(1, toNumber("01")); |
@@ -156,3 +175,6 @@ |
assertTrue(isNaN(toNumber("100.0 junk")), "100.0 junk"); |
assertTrue(isNaN(toNumber(".1e4 junk")), ".1e4 junk"); |
assertTrue(isNaN(toNumber("Infinity junk")), "Infinity junk"); |
+assertTrue(isNaN(toNumber("1e")), "1e"); |
+assertTrue(isNaN(toNumber("1e ")), "1e_"); |
+assertTrue(isNaN(toNumber("1" + repeat('0', 1000) + 'junk')), "1e1000 junk"); |