Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(626)

Side by Side Diff: src/json-parser.h

Issue 225823003: Implement handlified String::Equals and Name::Equals. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: refactored StringToDouble Created 6 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « src/ic.cc ('k') | src/mips/full-codegen-mips.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2011 the V8 project authors. All rights reserved. 1 // Copyright 2011 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 521 matching lines...) Expand 10 before | Expand all | Expand 10 after
532 if (c0_ < '0' || c0_ > '9') return ReportUnexpectedCharacter(); 532 if (c0_ < '0' || c0_ > '9') return ReportUnexpectedCharacter();
533 do { 533 do {
534 Advance(); 534 Advance();
535 } while (c0_ >= '0' && c0_ <= '9'); 535 } while (c0_ >= '0' && c0_ <= '9');
536 } 536 }
537 int length = position_ - beg_pos; 537 int length = position_ - beg_pos;
538 double number; 538 double number;
539 if (seq_ascii) { 539 if (seq_ascii) {
540 Vector<const uint8_t> chars(seq_source_->GetChars() + beg_pos, length); 540 Vector<const uint8_t> chars(seq_source_->GetChars() + beg_pos, length);
541 number = StringToDouble(isolate()->unicode_cache(), 541 number = StringToDouble(isolate()->unicode_cache(),
542 Vector<const char>::cast(chars), 542 chars,
543 NO_FLAGS, // Hex, octal or trailing junk. 543 NO_FLAGS, // Hex, octal or trailing junk.
544 OS::nan_value()); 544 OS::nan_value());
545 } else { 545 } else {
546 Vector<uint8_t> buffer = Vector<uint8_t>::New(length); 546 Vector<uint8_t> buffer = Vector<uint8_t>::New(length);
547 String::WriteToFlat(*source_, buffer.start(), beg_pos, position_); 547 String::WriteToFlat(*source_, buffer.start(), beg_pos, position_);
548 Vector<const uint8_t> result = 548 Vector<const uint8_t> result =
549 Vector<const uint8_t>(buffer.start(), length); 549 Vector<const uint8_t>(buffer.start(), length);
550 number = StringToDouble(isolate()->unicode_cache(), 550 number = StringToDouble(isolate()->unicode_cache(),
551 // TODO(dcarney): Convert StringToDouble to uint_t. 551 result,
552 Vector<const char>::cast(result),
553 NO_FLAGS, // Hex, octal or trailing junk. 552 NO_FLAGS, // Hex, octal or trailing junk.
554 0.0); 553 0.0);
555 buffer.Dispose(); 554 buffer.Dispose();
556 } 555 }
557 SkipWhitespace(); 556 SkipWhitespace();
558 return factory()->NewNumber(number, pretenure_); 557 return factory()->NewNumber(number, pretenure_);
559 } 558 }
560 559
561 560
562 template <typename StringType> 561 template <typename StringType>
(...skipping 234 matching lines...) Expand 10 before | Expand all | Expand 10 after
797 796
798 ASSERT_EQ('"', c0_); 797 ASSERT_EQ('"', c0_);
799 // Advance past the last '"'. 798 // Advance past the last '"'.
800 AdvanceSkipWhitespace(); 799 AdvanceSkipWhitespace();
801 return result; 800 return result;
802 } 801 }
803 802
804 } } // namespace v8::internal 803 } } // namespace v8::internal
805 804
806 #endif // V8_JSON_PARSER_H_ 805 #endif // V8_JSON_PARSER_H_
OLDNEW
« no previous file with comments | « src/ic.cc ('k') | src/mips/full-codegen-mips.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698