| Index: src/conversions.cc
|
| ===================================================================
|
| --- src/conversions.cc (revision 4338)
|
| +++ src/conversions.cc (working copy)
|
| @@ -357,9 +357,10 @@
|
| return sign ? -gay_strtod(buffer, NULL) : gay_strtod(buffer, NULL);
|
| }
|
|
|
| - // TODO(serya): The following legacy code causes accumulating rounding
|
| - // error for number greater than ~2^56. It should be rewritten using long
|
| - // arithmetic.
|
| + // The following code causes accumulating rounding error for numbers greater
|
| + // than ~2^56. It's explicitly allowed in the spec: "if R is not 2, 4, 8, 10,
|
| + // 16, or 32, then mathInt may be an implementation-dependent approximation to
|
| + // the mathematical integer value" (15.1.2.2).
|
|
|
| int lim_0 = '0' + (radix < 10 ? radix : 10);
|
| int lim_a = 'a' + (radix - 10);
|
|
|