Revert "Parser & internalizing: efficiency fixes."
This reverts commit 94a08565d7
for
breaking layout tests.
TBR=marja@chromium.org
Review URL: https://codereview.chromium.org/692333006
Cr-Commit-Position: refs/heads/master@{#25121}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25121 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
This commit is contained in:
parent
7699c9275f
commit
6bee6dcebc
@ -241,11 +241,12 @@ const AstRawString* AstValueFactory::GetString(Handle<String> literal) {
|
||||
|
||||
const AstConsString* AstValueFactory::NewConsString(
|
||||
const AstString* left, const AstString* right) {
|
||||
// This Vector will be valid as long as the Collector is alive (meaning that
|
||||
// the AstRawString will not be moved).
|
||||
AstConsString* new_string = new (zone_) AstConsString(left, right);
|
||||
strings_.Add(new_string);
|
||||
if (isolate_) {
|
||||
new_string->Internalize(isolate_);
|
||||
} else {
|
||||
strings_.Add(new_string);
|
||||
}
|
||||
return new_string;
|
||||
}
|
||||
@ -272,12 +273,9 @@ const AstValue* AstValueFactory::NewString(const AstRawString* string) {
|
||||
AstValue* value = new (zone_) AstValue(string);
|
||||
DCHECK(string != NULL);
|
||||
if (isolate_) {
|
||||
// If we're creating immediately-internalized AstValues, the underlying
|
||||
// strings must already be internalized at this point.
|
||||
DCHECK(!string->string_.is_null());
|
||||
value->Internalize(isolate_);
|
||||
}
|
||||
// These AstValues don't need to be added to values_, since the AstRawStrings
|
||||
// will be insternalized separately.
|
||||
values_.Add(value);
|
||||
return value;
|
||||
}
|
||||
|
||||
@ -286,9 +284,8 @@ const AstValue* AstValueFactory::NewSymbol(const char* name) {
|
||||
AstValue* value = new (zone_) AstValue(name);
|
||||
if (isolate_) {
|
||||
value->Internalize(isolate_);
|
||||
} else {
|
||||
values_.Add(value);
|
||||
}
|
||||
values_.Add(value);
|
||||
return value;
|
||||
}
|
||||
|
||||
@ -297,9 +294,8 @@ const AstValue* AstValueFactory::NewNumber(double number) {
|
||||
AstValue* value = new (zone_) AstValue(number);
|
||||
if (isolate_) {
|
||||
value->Internalize(isolate_);
|
||||
} else {
|
||||
values_.Add(value);
|
||||
}
|
||||
values_.Add(value);
|
||||
return value;
|
||||
}
|
||||
|
||||
@ -309,9 +305,8 @@ const AstValue* AstValueFactory::NewSmi(int number) {
|
||||
new (zone_) AstValue(AstValue::SMI, number);
|
||||
if (isolate_) {
|
||||
value->Internalize(isolate_);
|
||||
} else {
|
||||
values_.Add(value);
|
||||
}
|
||||
values_.Add(value);
|
||||
return value;
|
||||
}
|
||||
|
||||
@ -321,9 +316,8 @@ const AstValue* AstValueFactory::NewSmi(int number) {
|
||||
value = new (zone_) AstValue(initializer); \
|
||||
if (isolate_) { \
|
||||
value->Internalize(isolate_); \
|
||||
} else { \
|
||||
values_.Add(value); \
|
||||
} \
|
||||
values_.Add(value); \
|
||||
} \
|
||||
return value;
|
||||
|
||||
@ -370,10 +364,9 @@ const AstRawString* AstValueFactory::GetString(
|
||||
AstRawString* new_string = new (zone_) AstRawString(
|
||||
is_one_byte, Vector<const byte>(new_literal_bytes, length), hash);
|
||||
entry->key = new_string;
|
||||
strings_.Add(new_string);
|
||||
if (isolate_) {
|
||||
new_string->Internalize(isolate_);
|
||||
} else {
|
||||
strings_.Add(new_string);
|
||||
}
|
||||
entry->value = reinterpret_cast<void*>(1);
|
||||
}
|
||||
|
@ -935,11 +935,6 @@ FunctionLiteral* Parser::ParseLazy() {
|
||||
}
|
||||
Handle<SharedFunctionInfo> shared_info = info()->shared_info();
|
||||
|
||||
// Lazy parsing is only done during runtime, when we're already using the
|
||||
// heap. So make the AstValueFactory also internalize all values when it
|
||||
// creates them (this is more efficient).
|
||||
ast_value_factory()->Internalize(isolate());
|
||||
|
||||
// Initialize parser state.
|
||||
source = String::Flatten(source);
|
||||
FunctionLiteral* result;
|
||||
|
Loading…
Reference in New Issue
Block a user