| OLD | NEW |
| (Empty) |
| 1 description( | |
| 2 'This test checks a few Number.toFixed cases, including ' + | |
| 3 '<a href="https://bugs.webkit.org/show_bug.cgi?id=5307">5307: Number.toFixed
does not round 0.5 up</a>' + | |
| 4 ' and ' + | |
| 5 '<a href="https://bugs.webkit.org/show_bug.cgi?id=5308">5308: Number.toFixed
does not include leading zero</a>' + | |
| 6 '.'); | |
| 7 | |
| 8 shouldBe("(0).toFixed(0)", "'0'"); | |
| 9 | |
| 10 shouldBe("(0.49).toFixed(0)", "'0'"); | |
| 11 shouldBe("(0.5).toFixed(0)", "'1'"); | |
| 12 shouldBe("(0.51).toFixed(0)", "'1'"); | |
| 13 | |
| 14 shouldBe("(-0.49).toFixed(0)", "'-0'"); | |
| 15 shouldBe("(-0.5).toFixed(0)", "'-1'"); | |
| 16 shouldBe("(-0.51).toFixed(0)", "'-1'"); | |
| 17 | |
| 18 shouldBe("(0).toFixed(1)", "'0.0'"); | |
| 19 | |
| 20 shouldBe("(0.449).toFixed(1)", "'0.4'"); | |
| 21 shouldBe("(0.45).toFixed(1)", "'0.5'"); | |
| 22 shouldBe("(0.451).toFixed(1)", "'0.5'"); | |
| 23 shouldBe("(0.5).toFixed(1)", "'0.5'"); | |
| 24 shouldBe("(0.549).toFixed(1)", "'0.5'"); | |
| 25 shouldBe("(0.55).toFixed(1)", "'0.6'"); | |
| 26 shouldBe("(0.551).toFixed(1)", "'0.6'"); | |
| 27 | |
| 28 shouldBe("(-0.449).toFixed(1)", "'-0.4'"); | |
| 29 shouldBe("(-0.45).toFixed(1)", "'-0.5'"); | |
| 30 shouldBe("(-0.451).toFixed(1)", "'-0.5'"); | |
| 31 shouldBe("(-0.5).toFixed(1)", "'-0.5'"); | |
| 32 shouldBe("(-0.549).toFixed(1)", "'-0.5'"); | |
| 33 shouldBe("(-0.55).toFixed(1)", "'-0.6'"); | |
| 34 shouldBe("(-0.551).toFixed(1)", "'-0.6'"); | |
| 35 | |
| 36 var posInf = 1/0; | |
| 37 var negInf = -1/0; | |
| 38 var nan = 0/0; | |
| 39 | |
| 40 // From Acid3, http://bugs.webkit.org/show_bug.cgi?id=16640 | |
| 41 shouldBeEqualToString("(0.0).toFixed(4)", "0.0000"); | |
| 42 shouldBeEqualToString("(-0.0).toFixed(4)", "0.0000"); | |
| 43 shouldBeEqualToString("(0.0).toFixed()", "0"); | |
| 44 shouldBeEqualToString("(-0.0).toFixed()", "0"); | |
| 45 | |
| 46 // From http://bugs.webkit.org/show_bug.cgi?id=5258 | |
| 47 shouldBeEqualToString("(1234.567).toFixed()", "1235"); | |
| 48 shouldBeEqualToString("(1234.567).toFixed(0)", "1235"); | |
| 49 // 0 equivilents | |
| 50 shouldBeEqualToString("(1234.567).toFixed(null)", "1235"); | |
| 51 shouldBeEqualToString("(1234.567).toFixed(false)", "1235"); | |
| 52 shouldBeEqualToString("(1234.567).toFixed('foo')", "1235"); | |
| 53 shouldBeEqualToString("(1234.567).toFixed(nan)", "1235"); // nan is treated like
0 | |
| 54 | |
| 55 shouldBeEqualToString("(1234.567).toFixed(1)", "1234.6"); | |
| 56 shouldBeEqualToString("(1234.567).toFixed(true)", "1234.6"); // just like 1 | |
| 57 shouldBeEqualToString("(1234.567).toFixed('1')", "1234.6"); // just like 1 | |
| 58 | |
| 59 shouldBeEqualToString("(1234.567).toFixed(2)", "1234.57"); | |
| 60 shouldBeEqualToString("(1234.567).toFixed(2.9)", "1234.57"); | |
| 61 shouldBeEqualToString("(1234.567).toFixed(5)", "1234.56700"); | |
| 62 shouldBeEqualToString("(1234.567).toFixed(20)", "1234.56700000000000727596"); | |
| 63 | |
| 64 // SpiderMonkey allows precision values -20 to 100, the spec only allows 0 to 20 | |
| 65 shouldThrow("(1234.567).toFixed(21)"); | |
| 66 shouldThrow("(1234.567).toFixed(100)"); | |
| 67 shouldThrow("(1234.567).toFixed(101)"); | |
| 68 shouldThrow("(1234.567).toFixed(-1)"); | |
| 69 shouldThrow("(1234.567).toFixed(-4)"); | |
| 70 shouldThrow("(1234.567).toFixed(-5)"); | |
| 71 shouldThrow("(1234.567).toFixed(-20)"); | |
| 72 shouldThrow("(1234.567).toFixed(-21)"); | |
| 73 | |
| 74 shouldThrow("(1234.567).toFixed(posInf)"); | |
| 75 shouldThrow("(1234.567).toFixed(negInf)"); | |
| 76 | |
| 77 shouldBeEqualToString("posInf.toFixed()", "Infinity"); | |
| 78 shouldBeEqualToString("negInf.toFixed()", "-Infinity"); | |
| 79 shouldBeEqualToString("nan.toFixed()", "NaN"); | |
| OLD | NEW |