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

Unified Diff: src/full-codegen/x64/full-codegen-x64.cc

Issue 2209573002: Separate Scope into DeclarationScope and Scope (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Move has_simple_parameters_ to DeclarationScope 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/full-codegen/x64/full-codegen-x64.cc
diff --git a/src/full-codegen/x64/full-codegen-x64.cc b/src/full-codegen/x64/full-codegen-x64.cc
index cf168a598e02ba67fcd5f6b3cf08d7b7a3c785ce..9d783d3b8a339ca5f305718068be8266248e0052 100644
--- a/src/full-codegen/x64/full-codegen-x64.cc
+++ b/src/full-codegen/x64/full-codegen-x64.cc
@@ -91,6 +91,7 @@ class JumpPatchSite BASE_EMBEDDED {
// frames-x64.h for its layout.
void FullCodeGenerator::Generate() {
CompilationInfo* info = info_;
+ DCHECK_EQ(scope(), info->scope());
profiling_counter_ = isolate()->factory()->NewCell(
Handle<Smi>(Smi::FromInt(FLAG_interrupt_budget), isolate()));
SetFunctionPosition(literal());
@@ -193,7 +194,8 @@ void FullCodeGenerator::Generate() {
int num_parameters = info->scope()->num_parameters();
int first_parameter = info->scope()->has_this_declaration() ? -1 : 0;
for (int i = first_parameter; i < num_parameters; i++) {
- Variable* var = (i == -1) ? scope()->receiver() : scope()->parameter(i);
+ Variable* var =
+ (i == -1) ? info->scope()->receiver() : info->scope()->parameter(i);
if (var->IsContextSlot()) {
int parameter_offset = StandardFrameConstants::kCallerSPOffset +
(num_parameters - 1 - i) * kPointerSize;
@@ -224,7 +226,7 @@ void FullCodeGenerator::Generate() {
// Possibly set up a local binding to the this function which is used in
// derived constructors with super calls.
- Variable* this_function_var = scope()->this_function_var();
+ Variable* this_function_var = info->scope()->this_function_var();
if (this_function_var != nullptr) {
Comment cmnt(masm_, "[ This function");
if (!function_in_register) {
@@ -235,7 +237,7 @@ void FullCodeGenerator::Generate() {
}
// Possibly set up a local binding to the new target value.
- Variable* new_target_var = scope()->new_target_var();
+ Variable* new_target_var = info->scope()->new_target_var();
if (new_target_var != nullptr) {
Comment cmnt(masm_, "[ new.target");
SetVar(new_target_var, rdx, rbx, rcx);
@@ -243,7 +245,7 @@ void FullCodeGenerator::Generate() {
// Possibly allocate RestParameters
int rest_index;
- Variable* rest_param = scope()->rest_parameter(&rest_index);
+ Variable* rest_param = info->scope()->rest_parameter(&rest_index);
if (rest_param) {
Comment cmnt(masm_, "[ Allocate rest parameter array");
if (!function_in_register) {
@@ -256,7 +258,8 @@ void FullCodeGenerator::Generate() {
}
// Possibly allocate an arguments object.
- Variable* arguments = scope()->arguments();
+ DCHECK_EQ(scope(), info->scope());
+ Variable* arguments = info->scope()->arguments();
if (arguments != NULL) {
// Arguments object must be allocated after the context object, in
// case the "arguments" or ".arguments" variables are in the context.
@@ -288,7 +291,7 @@ void FullCodeGenerator::Generate() {
BailoutState::NO_REGISTERS);
{
Comment cmnt(masm_, "[ Declarations");
- VisitDeclarations(scope()->declarations());
+ VisitDeclarations(info->scope()->declarations());
}
// Assert that the declarations do not use ICs. Otherwise the debugger
@@ -3512,7 +3515,7 @@ void FullCodeGenerator::LoadContextField(Register dst, int context_index) {
void FullCodeGenerator::PushFunctionArgumentForContextAllocation() {
- Scope* closure_scope = scope()->ClosureScope();
+ DeclarationScope* closure_scope = scope()->GetClosureScope();
if (closure_scope->is_script_scope() ||
closure_scope->is_module_scope()) {
// Contexts nested in the native context have a canonical empty function

Powered by Google App Engine
This is Rietveld 408576698