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

Unified Diff: src/scanner.cc

Issue 231073002: WIP: Parser: delay string internalization. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: internalizing better Created 6 years, 7 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 side-by-side diff with in-line comments
Download patch
Index: src/scanner.cc
diff --git a/src/scanner.cc b/src/scanner.cc
index 2e039ca40353ee695e28b465ebdf3e7006aee5a8..de2f8385863a4de3e656a690a4d2a9124c50509f 100644
--- a/src/scanner.cc
+++ b/src/scanner.cc
@@ -14,6 +14,7 @@
#include "list-inl.h"
#include "v8.h"
#include "parser.h"
+#include "parser-symbol-table.h"
namespace v8 {
namespace internal {
@@ -1093,26 +1094,21 @@ bool Scanner::ScanRegExpFlags() {
}
-Handle<String> Scanner::AllocateNextLiteralString(Isolate* isolate,
- PretenureFlag tenured) {
- if (is_next_literal_one_byte()) {
- return isolate->factory()->NewStringFromOneByte(
- next_literal_one_byte_string(), tenured).ToHandleChecked();
- } else {
- return isolate->factory()->NewStringFromTwoByte(
- next_literal_two_byte_string(), tenured).ToHandleChecked();
+ParserSymbolTable::Symbol* Scanner::CurrentString(
+ ParserSymbolTable* symbol_table) {
+ if (is_literal_one_byte()) {
+ return symbol_table->GetOneByteSymbol(literal_one_byte_string());
}
+ return symbol_table->GetTwoByteSymbol(literal_two_byte_string());
}
-Handle<String> Scanner::AllocateInternalizedString(Isolate* isolate) {
- if (is_literal_one_byte()) {
- return isolate->factory()->InternalizeOneByteString(
- literal_one_byte_string());
- } else {
- return isolate->factory()->InternalizeTwoByteString(
- literal_two_byte_string());
+ParserSymbolTable::Symbol* Scanner::NextString(
+ ParserSymbolTable* symbol_table) {
+ if (is_next_literal_one_byte()) {
+ return symbol_table->GetOneByteSymbol(next_literal_one_byte_string());
}
+ return symbol_table->GetTwoByteSymbol(next_literal_two_byte_string());
}

Powered by Google App Engine
This is Rietveld 408576698