OLD | NEW |
1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 the V8 project authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
| 5 #include "src/strtod.h" |
| 6 |
5 #include <stdarg.h> | 7 #include <stdarg.h> |
6 #include <cmath> | 8 #include <cmath> |
7 | 9 |
8 #include "src/v8.h" | |
9 | |
10 #include "src/bignum.h" | 10 #include "src/bignum.h" |
11 #include "src/cached-powers.h" | 11 #include "src/cached-powers.h" |
12 #include "src/double.h" | 12 #include "src/double.h" |
13 #include "src/globals.h" | 13 #include "src/globals.h" |
14 #include "src/strtod.h" | |
15 #include "src/utils.h" | 14 #include "src/utils.h" |
16 | 15 |
17 namespace v8 { | 16 namespace v8 { |
18 namespace internal { | 17 namespace internal { |
19 | 18 |
20 // 2^53 = 9007199254740992. | 19 // 2^53 = 9007199254740992. |
21 // Any integer with at most 15 decimal digits will hence fit into a double | 20 // Any integer with at most 15 decimal digits will hence fit into a double |
22 // (which has a 53bit significand) without loss of precision. | 21 // (which has a 53bit significand) without loss of precision. |
23 static const int kMaxExactDoubleIntegerDecimalDigits = 15; | 22 static const int kMaxExactDoubleIntegerDecimalDigits = 15; |
24 // 2^64 = 18446744073709551616 > 10^19 | 23 // 2^64 = 18446744073709551616 > 10^19 |
(...skipping 389 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
414 double guess; | 413 double guess; |
415 if (DoubleStrtod(trimmed, exponent, &guess) || | 414 if (DoubleStrtod(trimmed, exponent, &guess) || |
416 DiyFpStrtod(trimmed, exponent, &guess)) { | 415 DiyFpStrtod(trimmed, exponent, &guess)) { |
417 return guess; | 416 return guess; |
418 } | 417 } |
419 return BignumStrtod(trimmed, exponent, guess); | 418 return BignumStrtod(trimmed, exponent, guess); |
420 } | 419 } |
421 | 420 |
422 } // namespace internal | 421 } // namespace internal |
423 } // namespace v8 | 422 } // namespace v8 |
OLD | NEW |