|  | // Copyright 2008 the V8 project authors. All rights reserved. | 
|  | // Redistribution and use in source and binary forms, with or without | 
|  | // modification, are permitted provided that the following conditions are | 
|  | // met: | 
|  | // | 
|  | //     * Redistributions of source code must retain the above copyright | 
|  | //       notice, this list of conditions and the following disclaimer. | 
|  | //     * Redistributions in binary form must reproduce the above | 
|  | //       copyright notice, this list of conditions and the following | 
|  | //       disclaimer in the documentation and/or other materials provided | 
|  | //       with the distribution. | 
|  | //     * Neither the name of Google Inc. nor the names of its | 
|  | //       contributors may be used to endorse or promote products derived | 
|  | //       from this software without specific prior written permission. | 
|  | // | 
|  | // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS | 
|  | // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT | 
|  | // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR | 
|  | // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT | 
|  | // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, | 
|  | // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT | 
|  | // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, | 
|  | // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY | 
|  | // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | 
|  | // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE | 
|  | // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | 
|  |  | 
|  | // This file is a concatenation of the number-tostring and | 
|  | // to-precision mjsunit tests where the mjsunit assert code has been | 
|  | // removed. | 
|  |  | 
|  | // ---------------------------------------------------------------------- | 
|  | // toString | 
|  | (NaN).toString(); | 
|  | (1/0).toString(); | 
|  | (-1/0).toString(); | 
|  | (0).toString(); | 
|  | (9).toString(); | 
|  | (90).toString(); | 
|  | (90.12).toString(); | 
|  | (0.1).toString(); | 
|  | (0.01).toString(); | 
|  | (0.0123).toString(); | 
|  | (111111111111111111111).toString(); | 
|  | (1111111111111111111111).toString(); | 
|  | (11111111111111111111111).toString(); | 
|  | (0.00001).toString(); | 
|  | (0.000001).toString(); | 
|  | (0.0000001).toString(); | 
|  | (0.00000012).toString(); | 
|  | (0.000000123).toString(); | 
|  | (0.00000001).toString(); | 
|  | (0.000000012).toString(); | 
|  | (0.0000000123).toString(); | 
|  |  | 
|  | (-0).toString(); | 
|  | (-9).toString(); | 
|  | (-90).toString(); | 
|  | (-90.12).toString(); | 
|  | (-0.1).toString(); | 
|  | (-0.01).toString(); | 
|  | (-0.0123).toString(); | 
|  | (-111111111111111111111).toString(); | 
|  | (-1111111111111111111111).toString(); | 
|  | (-11111111111111111111111).toString(); | 
|  | (-0.00001).toString(); | 
|  | (-0.000001).toString(); | 
|  | (-0.0000001).toString(); | 
|  | (-0.00000012).toString(); | 
|  | (-0.000000123).toString(); | 
|  | (-0.00000001).toString(); | 
|  | (-0.000000012).toString(); | 
|  | (-0.0000000123).toString(); | 
|  |  | 
|  | (NaN).toString(16); | 
|  | (1/0).toString(16); | 
|  | (-1/0).toString(16); | 
|  | (0).toString(16); | 
|  | (9).toString(16); | 
|  | (90).toString(16); | 
|  | (90.12).toString(16); | 
|  | (0.1).toString(16); | 
|  | (0.01).toString(16); | 
|  | (0.0123).toString(16); | 
|  | (111111111111111111111).toString(16); | 
|  | (1111111111111111111111).toString(16); | 
|  | (11111111111111111111111).toString(16); | 
|  | (0.00001).toString(16); | 
|  | (0.000001).toString(16); | 
|  | (0.0000001).toString(16); | 
|  | (0.00000012).toString(16); | 
|  | (0.000000123).toString(16); | 
|  | (0.00000001).toString(16); | 
|  | (0.000000012).toString(16); | 
|  | (0.0000000123).toString(16); | 
|  |  | 
|  | (-0).toString(16); | 
|  | (-9).toString(16); | 
|  | (-90).toString(16); | 
|  | (-90.12).toString(16); | 
|  | (-0.1).toString(16); | 
|  | (-0.01).toString(16); | 
|  | (-0.0123).toString(16); | 
|  | (-111111111111111111111).toString(16); | 
|  | (-1111111111111111111111).toString(16); | 
|  | (-11111111111111111111111).toString(16); | 
|  | (-0.00001).toString(16); | 
|  | (-0.000001).toString(16); | 
|  | (-0.0000001).toString(16); | 
|  | (-0.00000012).toString(16); | 
|  | (-0.000000123).toString(16); | 
|  | (-0.00000001).toString(16); | 
|  | (-0.000000012).toString(16); | 
|  | (-0.0000000123).toString(16); | 
|  |  | 
|  | (2,32).toString(); | 
|  | (Math.pow(2,32)-1).toString(16); | 
|  | (Math.pow(2,32)-1).toString(2); | 
|  | (10000007).toString(36); | 
|  | (0).toString(36); | 
|  | (0).toString(16); | 
|  | (0).toString(10); | 
|  | (0).toString(8); | 
|  | (0).toString(2); | 
|  | (2,32).toString(2); | 
|  | (Math.pow(2,32) + 1).toString(2); | 
|  | (0x100000000000081).toString(16); | 
|  | (-(-'0x1000000000000081')).toString(16); | 
|  | (0x100000000000081).toString(2); | 
|  | (-(Math.pow(2,32)-1)).toString(2); | 
|  | (-10000007).toString(36); | 
|  | (-Math.pow(2,32)).toString(2); | 
|  | (-(Math.pow(2,32) + 1)).toString(2); | 
|  | (-0x100000000000081).toString(16); | 
|  | (-0x100000000000081).toString(2); | 
|  | (1000).toString(); | 
|  | (0.00001).toString(); | 
|  | (1000000000000000128).toString(); | 
|  | (1000000000000000012800).toString(); | 
|  | (-1000000000000000012800).toString(); | 
|  | (0.0000001).toString(); | 
|  | (-0.0000001).toString(); | 
|  | (1000000000000000128000).toString(); | 
|  | (0.000001).toString(); | 
|  | (0.0000001).toString(); | 
|  | (8.5).toString(16); | 
|  | (-8.5).toString(16); | 
|  |  | 
|  | // ---------------------------------------------------------------------- | 
|  | // toFixed | 
|  | (NaN).toFixed(2); | 
|  | (1/0).toFixed(2); | 
|  | (-1/0).toFixed(2); | 
|  |  | 
|  | (1111111111111111111111).toFixed(8); | 
|  | (0.1).toFixed(1); | 
|  | (0.1).toFixed(2); | 
|  | (0.1).toFixed(3); | 
|  | (0.01).toFixed(2); | 
|  | (0.01).toFixed(3); | 
|  | (0.01).toFixed(4); | 
|  | (0.001).toFixed(2); | 
|  | (0.001).toFixed(3); | 
|  | (0.001).toFixed(4); | 
|  | (1).toFixed(4); | 
|  | (1).toFixed(1); | 
|  | (1).toFixed(0); | 
|  | (12).toFixed(0); | 
|  | (1.1).toFixed(0); | 
|  | (12.1).toFixed(0); | 
|  | (1.12).toFixed(0); | 
|  | (12.12).toFixed(0); | 
|  | (0.0000006).toFixed(7); | 
|  | (0.00000006).toFixed(8); | 
|  | (0.00000006).toFixed(9); | 
|  | (0.00000006).toFixed(10); | 
|  | (0).toFixed(0); | 
|  | (0).toFixed(1); | 
|  | (0).toFixed(2); | 
|  |  | 
|  | (-1111111111111111111111).toFixed(8); | 
|  | (-0.1).toFixed(1); | 
|  | (-0.1).toFixed(2); | 
|  | (-0.1).toFixed(3); | 
|  | (-0.01).toFixed(2); | 
|  | (-0.01).toFixed(3); | 
|  | (-0.01).toFixed(4); | 
|  | (-0.001).toFixed(2); | 
|  | (-0.001).toFixed(3); | 
|  | (-0.001).toFixed(4); | 
|  | (-1).toFixed(4); | 
|  | (-1).toFixed(1); | 
|  | (-1).toFixed(0); | 
|  | (-1.1).toFixed(0); | 
|  | (-12.1).toFixed(0); | 
|  | (-1.12).toFixed(0); | 
|  | (-12.12).toFixed(0); | 
|  | (-0.0000006).toFixed(7); | 
|  | (-0.00000006).toFixed(8); | 
|  | (-0.00000006).toFixed(9); | 
|  | (-0.00000006).toFixed(10); | 
|  | (-0).toFixed(0); | 
|  | (-0).toFixed(1); | 
|  | (-0).toFixed(2); | 
|  |  | 
|  | (1000).toFixed(); | 
|  | (0.00001).toFixed(); | 
|  | (0.00001).toFixed(5); | 
|  | (0.0000000000000000001).toFixed(20); | 
|  | (0.00001).toFixed(17); | 
|  | (1).toFixed(17); | 
|  | (1000000000000000128).toFixed(); | 
|  | (100000000000000128).toFixed(1); | 
|  | (10000000000000128).toFixed(2); | 
|  | (10000000000000128).toFixed(20); | 
|  | (0).toFixed(); | 
|  | ((-42).toFixed(3)); | 
|  | (-1000000000000000128).toFixed(); | 
|  | (-0.0000000000000000001).toFixed(20); | 
|  | (0.123123123123123).toFixed(20); | 
|  | // Test that we round up even when the last digit generated is even. | 
|  | // dtoa does not do this in its original form. | 
|  | (0.5).toFixed(0); | 
|  | (-0.5).toFixed(0); | 
|  | (1.25).toFixed(1); | 
|  | // This is bizare, but Spidermonkey and KJS behave the same. | 
|  | (234.20405).toFixed(4); | 
|  | (234.2040506).toFixed(4); | 
|  |  | 
|  | // ---------------------------------------------------------------------- | 
|  | // toExponential | 
|  | (1).toExponential(); | 
|  | (11).toExponential(); | 
|  | (112).toExponential(); | 
|  | (1).toExponential(0); | 
|  | (11).toExponential(0); | 
|  | (112).toExponential(0); | 
|  | (1).toExponential(1); | 
|  | (11).toExponential(1); | 
|  | (112).toExponential(1); | 
|  | (1).toExponential(2); | 
|  | (11).toExponential(2); | 
|  | (112).toExponential(2); | 
|  | (1).toExponential(3); | 
|  | (11).toExponential(3); | 
|  | (112).toExponential(3); | 
|  | (0.1).toExponential(); | 
|  | (0.11).toExponential(); | 
|  | (0.112).toExponential(); | 
|  | (0.1).toExponential(0); | 
|  | (0.11).toExponential(0); | 
|  | (0.112).toExponential(0); | 
|  | (0.1).toExponential(1); | 
|  | (0.11).toExponential(1); | 
|  | (0.112).toExponential(1); | 
|  | (0.1).toExponential(2); | 
|  | (0.11).toExponential(2); | 
|  | (0.112).toExponential(2); | 
|  | (0.1).toExponential(3); | 
|  | (0.11).toExponential(3); | 
|  | (0.112).toExponential(3); | 
|  |  | 
|  | (-1).toExponential(); | 
|  | (-11).toExponential(); | 
|  | (-112).toExponential(); | 
|  | (-1).toExponential(0); | 
|  | (-11).toExponential(0); | 
|  | (-112).toExponential(0); | 
|  | (-1).toExponential(1); | 
|  | (-11).toExponential(1); | 
|  | (-112).toExponential(1); | 
|  | (-1).toExponential(2); | 
|  | (-11).toExponential(2); | 
|  | (-112).toExponential(2); | 
|  | (-1).toExponential(3); | 
|  | (-11).toExponential(3); | 
|  | (-112).toExponential(3); | 
|  | (-0.1).toExponential(); | 
|  | (-0.11).toExponential(); | 
|  | (-0.112).toExponential(); | 
|  | (-0.1).toExponential(0); | 
|  | (-0.11).toExponential(0); | 
|  | (-0.112).toExponential(0); | 
|  | (-0.1).toExponential(1); | 
|  | (-0.11).toExponential(1); | 
|  | (-0.112).toExponential(1); | 
|  | (-0.1).toExponential(2); | 
|  | (-0.11).toExponential(2); | 
|  | (-0.112).toExponential(2); | 
|  | (-0.1).toExponential(3); | 
|  | (-0.11).toExponential(3); | 
|  | (-0.112).toExponential(3); | 
|  |  | 
|  | (NaN).toExponential(2); | 
|  | (Infinity).toExponential(2); | 
|  | (-Infinity).toExponential(2); | 
|  | (1).toExponential(0); | 
|  | (0).toExponential(); | 
|  | (0).toExponential(2); | 
|  | (11.2356).toExponential(0); | 
|  | (11.2356).toExponential(4); | 
|  | (0.000112356).toExponential(4); | 
|  | (-0.000112356).toExponential(4); | 
|  | (0.000112356).toExponential(); | 
|  | (-0.000112356).toExponential(); | 
|  |  | 
|  | // ---------------------------------------------------------------------- | 
|  | // toPrecision | 
|  | (NaN).toPrecision(1); | 
|  | (Infinity).toPrecision(2); | 
|  | (-Infinity).toPrecision(2); | 
|  | (0.000555).toPrecision(15); | 
|  | (0.000000555).toPrecision(15); | 
|  | (-0.000000555).toPrecision(15); | 
|  | (123456789).toPrecision(1); | 
|  | (123456789).toPrecision(9); | 
|  | (123456789).toPrecision(8); | 
|  | (123456789).toPrecision(7); | 
|  | (-123456789).toPrecision(7); | 
|  | (-.0000000012345).toPrecision(2); | 
|  | (-.000000012345).toPrecision(2); | 
|  | (-.00000012345).toPrecision(2); | 
|  | (-.0000012345).toPrecision(2); | 
|  | (-.000012345).toPrecision(2); | 
|  | (-.00012345).toPrecision(2); | 
|  | (-.0012345).toPrecision(2); | 
|  | (-.012345).toPrecision(2); | 
|  | (-.12345).toPrecision(2); | 
|  | (-1.2345).toPrecision(2); | 
|  | (-12.345).toPrecision(2); | 
|  | (-123.45).toPrecision(2); | 
|  | (-1234.5).toPrecision(2); | 
|  | (-12345).toPrecision(2); | 
|  | (-12345.67).toPrecision(4); | 
|  | Number(-12344.67).toPrecision(4); | 
|  | // Test that we round up even when the last digit generated is even. | 
|  | // dtoa does not do this in its original form. | 
|  | (1.25).toPrecision(2); | 
|  | (1.35).toPrecision(2); | 
|  |  | 
|  | // Test the exponential notation output. | 
|  | (1.2345e+27).toPrecision(1); | 
|  | (1.2345e+27).toPrecision(2); | 
|  | (1.2345e+27).toPrecision(3); | 
|  | (1.2345e+27).toPrecision(4); | 
|  | (1.2345e+27).toPrecision(5); | 
|  | (1.2345e+27).toPrecision(6); | 
|  | (1.2345e+27).toPrecision(7); | 
|  |  | 
|  | (-1.2345e+27).toPrecision(1); | 
|  | (-1.2345e+27).toPrecision(2); | 
|  | (-1.2345e+27).toPrecision(3); | 
|  | (-1.2345e+27).toPrecision(4); | 
|  | (-1.2345e+27).toPrecision(5); | 
|  | (-1.2345e+27).toPrecision(6); | 
|  | (-1.2345e+27).toPrecision(7); | 
|  |  | 
|  |  | 
|  | // Test the fixed notation output. | 
|  | (7).toPrecision(1); | 
|  | (7).toPrecision(2); | 
|  | (7).toPrecision(3); | 
|  |  | 
|  | (-7).toPrecision(1); | 
|  | (-7).toPrecision(2); | 
|  | (-7).toPrecision(3); | 
|  |  | 
|  | (91).toPrecision(1); | 
|  | (91).toPrecision(2); | 
|  | (91).toPrecision(3); | 
|  | (91).toPrecision(4); | 
|  |  | 
|  | (-91).toPrecision(1); | 
|  | (-91).toPrecision(2); | 
|  | (-91).toPrecision(3); | 
|  | (-91).toPrecision(4); | 
|  |  | 
|  | (91.1234).toPrecision(1); | 
|  | (91.1234).toPrecision(2); | 
|  | (91.1234).toPrecision(3); | 
|  | (91.1234).toPrecision(4); | 
|  | (91.1234).toPrecision(5); | 
|  | (91.1234).toPrecision(6); | 
|  | (91.1234).toPrecision(7); | 
|  | (91.1234).toPrecision(8); | 
|  |  | 
|  | (-91.1234).toPrecision(1); | 
|  | (-91.1234).toPrecision(2); | 
|  | (-91.1234).toPrecision(3); | 
|  | (-91.1234).toPrecision(4); | 
|  | (-91.1234).toPrecision(5); | 
|  | (-91.1234).toPrecision(6); | 
|  | (-91.1234).toPrecision(7); | 
|  | (-91.1234).toPrecision(8); |