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

Unified Diff: src/ast/scopes.cc

Issue 2223773002: Move zone_ to Scope (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Created 4 years, 4 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
« no previous file with comments | « src/ast/scopes.h ('k') | src/parsing/parser.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: src/ast/scopes.cc
diff --git a/src/ast/scopes.cc b/src/ast/scopes.cc
index a11689f67a6a261717f4d8011a6a4173a46e6deb..65862ce68b496abf625f337d83ef7090d96deb08 100644
--- a/src/ast/scopes.cc
+++ b/src/ast/scopes.cc
@@ -24,12 +24,11 @@ namespace internal {
// this is ensured.
VariableMap::VariableMap(Zone* zone)
- : ZoneHashMap(ZoneHashMap::PointersMatch, 8, ZoneAllocationPolicy(zone)),
- zone_(zone) {}
-VariableMap::~VariableMap() {}
+ : ZoneHashMap(ZoneHashMap::PointersMatch, 8, ZoneAllocationPolicy(zone)) {}
-Variable* VariableMap::Declare(Scope* scope, const AstRawString* name,
- VariableMode mode, Variable::Kind kind,
+Variable* VariableMap::Declare(Zone* zone, Scope* scope,
+ const AstRawString* name, VariableMode mode,
+ Variable::Kind kind,
InitializationFlag initialization_flag,
MaybeAssignedFlag maybe_assigned_flag) {
// AstRawStrings are unambiguous, i.e., the same string is always represented
@@ -37,12 +36,12 @@ Variable* VariableMap::Declare(Scope* scope, const AstRawString* name,
// FIXME(marja): fix the type of Lookup.
Entry* p =
ZoneHashMap::LookupOrInsert(const_cast<AstRawString*>(name), name->hash(),
- ZoneAllocationPolicy(zone()));
+ ZoneAllocationPolicy(zone));
if (p->value == NULL) {
// The variable has not been declared yet -> insert it.
DCHECK(p->key == name);
- p->value = new (zone()) Variable(scope, name, mode, kind,
- initialization_flag, maybe_assigned_flag);
+ p->value = new (zone) Variable(scope, name, mode, kind, initialization_flag,
+ maybe_assigned_flag);
}
return reinterpret_cast<Variable*>(p->value);
}
@@ -58,22 +57,18 @@ Variable* VariableMap::Lookup(const AstRawString* name) {
return NULL;
}
-
SloppyBlockFunctionMap::SloppyBlockFunctionMap(Zone* zone)
- : ZoneHashMap(ZoneHashMap::PointersMatch, 8, ZoneAllocationPolicy(zone)),
- zone_(zone) {}
-SloppyBlockFunctionMap::~SloppyBlockFunctionMap() {}
-
+ : ZoneHashMap(ZoneHashMap::PointersMatch, 8, ZoneAllocationPolicy(zone)) {}
-void SloppyBlockFunctionMap::Declare(const AstRawString* name,
+void SloppyBlockFunctionMap::Declare(Zone* zone, const AstRawString* name,
SloppyBlockFunctionStatement* stmt) {
// AstRawStrings are unambiguous, i.e., the same string is always represented
// by the same AstRawString*.
Entry* p =
ZoneHashMap::LookupOrInsert(const_cast<AstRawString*>(name), name->hash(),
- ZoneAllocationPolicy(zone_));
+ ZoneAllocationPolicy(zone));
if (p->value == nullptr) {
- p->value = new (zone_->New(sizeof(Vector))) Vector(zone_);
+ p->value = new (zone->New(sizeof(Vector))) Vector(zone);
}
Vector* delegates = static_cast<Vector*>(p->value);
delegates->push_back(stmt);
@@ -84,7 +79,8 @@ void SloppyBlockFunctionMap::Declare(const AstRawString* name,
// Implementation of Scope
Scope::Scope(Zone* zone, Scope* outer_scope, ScopeType scope_type)
- : outer_scope_(outer_scope),
+ : zone_(zone),
+ outer_scope_(outer_scope),
variables_(zone),
decls_(4, zone),
scope_type_(scope_type),
@@ -128,7 +124,8 @@ DeclarationScope::DeclarationScope(Zone* zone, Scope* outer_scope,
Scope::Scope(Zone* zone, Scope* inner_scope, ScopeType scope_type,
Handle<ScopeInfo> scope_info)
- : outer_scope_(nullptr),
+ : zone_(zone),
+ outer_scope_(nullptr),
variables_(zone),
decls_(4, zone),
scope_info_(scope_info),
@@ -161,7 +158,8 @@ DeclarationScope::DeclarationScope(Zone* zone, Scope* inner_scope,
Scope::Scope(Zone* zone, Scope* inner_scope,
const AstRawString* catch_variable_name)
- : outer_scope_(nullptr),
+ : zone_(zone),
+ outer_scope_(nullptr),
variables_(zone),
decls_(0, zone),
scope_type_(CATCH_SCOPE),
@@ -169,11 +167,9 @@ Scope::Scope(Zone* zone, Scope* inner_scope,
SetDefaults();
AddInnerScope(inner_scope);
num_heap_slots_ = Context::MIN_CONTEXT_SLOTS;
- Variable* variable = variables_.Declare(this,
- catch_variable_name,
- VAR,
- Variable::NORMAL,
- kCreatedInitialized);
+ Variable* variable =
+ variables_.Declare(zone, this, catch_variable_name, VAR, Variable::NORMAL,
+ kCreatedInitialized);
AllocateHeapSlot(variable);
}
@@ -313,8 +309,8 @@ void Scope::DeserializeScopeInfo(Isolate* isolate,
kind = Variable::THIS;
}
- Variable* result = variables_.Declare(this, name, mode, kind, init_flag,
- maybe_assigned_flag);
+ Variable* result = variables_.Declare(zone(), this, name, mode, kind,
+ init_flag, maybe_assigned_flag);
result->AllocateTo(location, index);
}
@@ -333,8 +329,8 @@ void Scope::DeserializeScopeInfo(Isolate* isolate,
VariableLocation location = VariableLocation::LOOKUP;
Variable::Kind kind = Variable::NORMAL;
- Variable* result = variables_.Declare(this, name, mode, kind, init_flag,
- maybe_assigned_flag);
+ Variable* result = variables_.Declare(zone(), this, name, mode, kind,
+ init_flag, maybe_assigned_flag);
result->AllocateTo(location, index);
}
@@ -408,7 +404,7 @@ void DeclarationScope::DeclareThis(AstValueFactory* ast_value_factory) {
bool subclass_constructor = IsSubclassConstructor(function_kind_);
Variable* var = variables_.Declare(
- this, ast_value_factory->this_string(),
+ zone(), this, ast_value_factory->this_string(),
subclass_constructor ? CONST : VAR, Variable::THIS,
subclass_constructor ? kNeedsInitialization : kCreatedInitialized);
receiver_ = var;
@@ -422,18 +418,18 @@ void DeclarationScope::DeclareDefaultFunctionVariables(
// Note that it might never be accessed, in which case it won't be
// allocated during variable allocation.
arguments_ =
- variables_.Declare(this, ast_value_factory->arguments_string(), VAR,
- Variable::ARGUMENTS, kCreatedInitialized);
+ variables_.Declare(zone(), this, ast_value_factory->arguments_string(),
+ VAR, Variable::ARGUMENTS, kCreatedInitialized);
new_target_ =
- variables_.Declare(this, ast_value_factory->new_target_string(), CONST,
- Variable::NORMAL, kCreatedInitialized);
+ variables_.Declare(zone(), this, ast_value_factory->new_target_string(),
+ CONST, Variable::NORMAL, kCreatedInitialized);
if (IsConciseMethod(function_kind_) || IsClassConstructor(function_kind_) ||
IsAccessorFunction(function_kind_)) {
- this_function_ =
- variables_.Declare(this, ast_value_factory->this_function_string(),
- CONST, Variable::NORMAL, kCreatedInitialized);
+ this_function_ = variables_.Declare(
+ zone(), this, ast_value_factory->this_function_string(), CONST,
+ Variable::NORMAL, kCreatedInitialized);
}
}
@@ -598,7 +594,7 @@ Variable* Scope::LookupLocal(const AstRawString* name) {
// TODO(marja, rossberg): Correctly declare FUNCTION, CLASS, NEW_TARGET, and
// ARGUMENTS bindings as their corresponding Variable::Kind.
- Variable* var = variables_.Declare(this, name, mode, kind, init_flag,
+ Variable* var = variables_.Declare(zone(), this, name, mode, kind, init_flag,
maybe_assigned_flag);
var->AllocateTo(location, index);
return var;
@@ -649,7 +645,7 @@ Variable* DeclarationScope::DeclareParameter(
if (mode == TEMPORARY) {
var = NewTemporary(name);
} else {
- var = variables_.Declare(this, name, mode, Variable::NORMAL,
+ var = variables_.Declare(zone(), this, name, mode, Variable::NORMAL,
kCreatedInitialized);
// TODO(wingo): Avoid O(n^2) check.
*is_duplicate = IsDeclaredParameter(name);
@@ -677,17 +673,14 @@ Variable* Scope::DeclareLocal(const AstRawString* name, VariableMode mode,
// introduced during variable allocation, and TEMPORARY variables are
// allocated via NewTemporary().
DCHECK(IsDeclaredVariableMode(mode));
- return variables_.Declare(this, name, mode, kind, init_flag,
+ return variables_.Declare(zone(), this, name, mode, kind, init_flag,
maybe_assigned_flag);
}
Variable* DeclarationScope::DeclareDynamicGlobal(const AstRawString* name) {
DCHECK(is_script_scope());
- return variables_.Declare(this,
- name,
- DYNAMIC_GLOBAL,
- Variable::NORMAL,
- kCreatedInitialized);
+ return variables_.Declare(zone(), this, name, DYNAMIC_GLOBAL,
+ Variable::NORMAL, kCreatedInitialized);
}
@@ -1266,11 +1259,7 @@ Variable* Scope::NonLocal(const AstRawString* name, VariableMode mode) {
// Declare a new non-local.
InitializationFlag init_flag = (mode == VAR)
? kCreatedInitialized : kNeedsInitialization;
- var = map->Declare(NULL,
- name,
- mode,
- Variable::NORMAL,
- init_flag);
+ var = map->Declare(zone(), NULL, name, mode, Variable::NORMAL, init_flag);
// Allocate it by giving it a dynamic lookup.
var->AllocateTo(VariableLocation::LOOKUP, -1);
}
« no previous file with comments | « src/ast/scopes.h ('k') | src/parsing/parser.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698