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

Unified Diff: src/interpreter/bytecode-generator.cc

Issue 2209573002: Separate Scope into DeclarationScope and Scope (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Cleanup diff 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
Index: src/interpreter/bytecode-generator.cc
diff --git a/src/interpreter/bytecode-generator.cc b/src/interpreter/bytecode-generator.cc
index 06eb53e92a499233fd83a0a73502eceeebf72b28..54f8f887204da8e36da365fc84a8d607a0ca5b2d 100644
--- a/src/interpreter/bytecode-generator.cc
+++ b/src/interpreter/bytecode-generator.cc
@@ -656,19 +656,20 @@ void BytecodeGenerator::GenerateBytecode() {
}
void BytecodeGenerator::GenerateBytecodeBody() {
+ DCHECK_EQ(scope(), info()->scope());
Michael Starzinger 2016/08/03 13:02:19 nit: Can we change BytecodeGenerator::scope() to r
// Build the arguments object if it is used.
- VisitArgumentsObject(scope()->arguments());
+ VisitArgumentsObject(info()->scope()->arguments());
// Build rest arguments array if it is used.
int rest_index;
- Variable* rest_parameter = scope()->rest_parameter(&rest_index);
+ Variable* rest_parameter = info()->scope()->rest_parameter(&rest_index);
VisitRestArgumentsArray(rest_parameter);
// Build assignment to {.this_function} variable if it is used.
- VisitThisFunctionVariable(scope()->this_function_var());
+ VisitThisFunctionVariable(info()->scope()->this_function_var());
// Build assignment to {new.target} variable if it is used.
- VisitNewTargetVariable(scope()->new_target_var());
+ VisitNewTargetVariable(info()->scope()->new_target_var());
// TODO(rmcilroy): Emit tracing call if requested to do so.
if (FLAG_trace) {
@@ -676,7 +677,7 @@ void BytecodeGenerator::GenerateBytecodeBody() {
}
// Visit declarations within the function scope.
- VisitDeclarations(scope()->declarations());
+ VisitDeclarations(info()->scope()->declarations());
// Perform a stack-check before the body.
builder()->StackCheck(info()->literal()->start_position());
@@ -3016,7 +3017,7 @@ void BytecodeGenerator::VisitNewLocalFunctionContext() {
}
void BytecodeGenerator::VisitBuildLocalActivationContext() {
- Scope* scope = this->scope();
+ DeclarationScope* scope = this->scope()->AsDeclarationScope();
Michael Starzinger 2016/08/03 13:02:19 nit: See comment above.
if (scope->has_this_declaration() && scope->receiver()->IsContextSlot()) {
Variable* variable = scope->receiver();
@@ -3165,7 +3166,8 @@ void BytecodeGenerator::VisitNewTargetVariable(Variable* variable) {
void BytecodeGenerator::VisitFunctionClosureForContext() {
AccumulatorResultScope accumulator_execution_result(this);
- Scope* closure_scope = execution_context()->scope()->ClosureScope();
+ DeclarationScope* closure_scope =
+ execution_context()->scope()->GetClosureScope();
if (closure_scope->is_script_scope() ||
closure_scope->is_module_scope()) {
// Contexts nested in the native context have a canonical empty function as

Powered by Google App Engine
This is Rietveld 408576698