OLD | NEW |
---|---|
1 // Copyright 2006-2008 the V8 project authors. All rights reserved. | 1 // Copyright 2006-2008 the V8 project authors. All rights reserved. |
2 // Redistribution and use in source and binary forms, with or without | 2 // Redistribution and use in source and binary forms, with or without |
3 // modification, are permitted provided that the following conditions are | 3 // modification, are permitted provided that the following conditions are |
4 // met: | 4 // met: |
5 // | 5 // |
6 // * Redistributions of source code must retain the above copyright | 6 // * Redistributions of source code must retain the above copyright |
7 // notice, this list of conditions and the following disclaimer. | 7 // notice, this list of conditions and the following disclaimer. |
8 // * Redistributions in binary form must reproduce the above | 8 // * Redistributions in binary form must reproduce the above |
9 // copyright notice, this list of conditions and the following | 9 // copyright notice, this list of conditions and the following |
10 // disclaimer in the documentation and/or other materials provided | 10 // disclaimer in the documentation and/or other materials provided |
(...skipping 432 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
443 int significant_digits = 0; | 443 int significant_digits = 0; |
444 int insignificant_digits = 0; | 444 int insignificant_digits = 0; |
445 bool nonzero_digit_dropped = false; | 445 bool nonzero_digit_dropped = false; |
446 bool fractional_part = false; | 446 bool fractional_part = false; |
447 | 447 |
448 bool sign = false; | 448 bool sign = false; |
449 | 449 |
450 if (*current == '+') { | 450 if (*current == '+') { |
451 // Ignore leading sign; skip following spaces. | 451 // Ignore leading sign; skip following spaces. |
452 ++current; | 452 ++current; |
453 if (!AdvanceToNonspace(¤t, end)) return JUNK_STRING_VALUE; | 453 if (current == end) return JUNK_STRING_VALUE; |
Karl Klose
2010/11/26 12:40:12
Should the comment not be updated to something lik
Lasse Reichstein
2010/11/26 12:46:01
Good catch.
I'll just remove "; skip following spa
| |
454 } else if (*current == '-') { | 454 } else if (*current == '-') { |
455 ++current; | 455 ++current; |
456 if (!AdvanceToNonspace(¤t, end)) return JUNK_STRING_VALUE; | 456 if (current == end) return JUNK_STRING_VALUE; |
457 sign = true; | 457 sign = true; |
458 } | 458 } |
459 | 459 |
460 static const char kInfinitySymbol[] = "Infinity"; | 460 static const char kInfinitySymbol[] = "Infinity"; |
461 if (*current == kInfinitySymbol[0]) { | 461 if (*current == kInfinitySymbol[0]) { |
462 if (!SubStringEquals(¤t, end, kInfinitySymbol)) { | 462 if (!SubStringEquals(¤t, end, kInfinitySymbol)) { |
463 return JUNK_STRING_VALUE; | 463 return JUNK_STRING_VALUE; |
464 } | 464 } |
465 | 465 |
466 if (!allow_trailing_junk && AdvanceToNonspace(¤t, end)) { | 466 if (!allow_trailing_junk && AdvanceToNonspace(¤t, end)) { |
(...skipping 607 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1074 // Allocate result and fill in the parts. | 1074 // Allocate result and fill in the parts. |
1075 StringBuilder builder(result_size + 1); | 1075 StringBuilder builder(result_size + 1); |
1076 builder.AddSubstring(integer_buffer + integer_pos + 1, integer_part_size); | 1076 builder.AddSubstring(integer_buffer + integer_pos + 1, integer_part_size); |
1077 if (decimal_pos > 0) builder.AddCharacter('.'); | 1077 if (decimal_pos > 0) builder.AddCharacter('.'); |
1078 builder.AddSubstring(decimal_buffer, decimal_pos); | 1078 builder.AddSubstring(decimal_buffer, decimal_pos); |
1079 return builder.Finalize(); | 1079 return builder.Finalize(); |
1080 } | 1080 } |
1081 | 1081 |
1082 | 1082 |
1083 } } // namespace v8::internal | 1083 } } // namespace v8::internal |
OLD | NEW |