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

Unified Diff: src/parsing/parser.cc

Issue 2268333002: Move scope_uses_super_property_ to DeclarationScope (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.cc ('k') | src/parsing/preparser.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: src/parsing/parser.cc
diff --git a/src/parsing/parser.cc b/src/parsing/parser.cc
index da0562be1a3896fb917e3378d0b1db84503a9114..59c50a196bfc7b30ebfb69d1184525d10be438a7 100644
--- a/src/parsing/parser.cc
+++ b/src/parsing/parser.cc
@@ -4408,6 +4408,8 @@ void Parser::SkipLazyFunctionBody(int* materialized_literal_count,
if (produce_cached_parse_data()) CHECK(log_);
int function_block_pos = position();
+ DeclarationScope* scope = this->scope()->AsDeclarationScope();
+ DCHECK(scope->is_function_scope());
if (consume_cached_parse_data() && !cached_parse_data_->rejected()) {
// If we have cached data, we use it to skip parsing the function body. The
// data contains the information we need to construct the lazy function.
@@ -4419,14 +4421,14 @@ void Parser::SkipLazyFunctionBody(int* materialized_literal_count,
if (entry.is_valid() && entry.end_pos() > function_block_pos) {
scanner()->SeekForward(entry.end_pos() - 1);
- scope()->set_end_position(entry.end_pos());
+ scope->set_end_position(entry.end_pos());
Expect(Token::RBRACE, CHECK_OK_VOID);
- total_preparse_skipped_ += scope()->end_position() - function_block_pos;
+ total_preparse_skipped_ += scope->end_position() - function_block_pos;
*materialized_literal_count = entry.literal_count();
*expected_property_count = entry.property_count();
- SetLanguageMode(scope(), entry.language_mode());
- if (entry.uses_super_property()) scope()->RecordSuperPropertyUsage();
- if (entry.calls_eval()) scope()->RecordEvalCall();
+ SetLanguageMode(scope, entry.language_mode());
+ if (entry.uses_super_property()) scope->RecordSuperPropertyUsage();
+ if (entry.calls_eval()) scope->RecordEvalCall();
return;
}
cached_parse_data_->Reject();
@@ -4452,25 +4454,21 @@ void Parser::SkipLazyFunctionBody(int* materialized_literal_count,
*ok = false;
return;
}
- scope()->set_end_position(logger.end());
+ scope->set_end_position(logger.end());
Expect(Token::RBRACE, CHECK_OK_VOID);
- total_preparse_skipped_ += scope()->end_position() - function_block_pos;
+ total_preparse_skipped_ += scope->end_position() - function_block_pos;
*materialized_literal_count = logger.literals();
*expected_property_count = logger.properties();
- SetLanguageMode(scope(), logger.language_mode());
- if (logger.uses_super_property()) {
- scope()->RecordSuperPropertyUsage();
- }
- if (logger.calls_eval()) {
- scope()->RecordEvalCall();
- }
+ SetLanguageMode(scope, logger.language_mode());
+ if (logger.uses_super_property()) scope->RecordSuperPropertyUsage();
+ if (logger.calls_eval()) scope->RecordEvalCall();
if (produce_cached_parse_data()) {
DCHECK(log_);
// Position right after terminal '}'.
int body_end = scanner()->location().end_pos;
log_->LogFunction(function_block_pos, body_end, *materialized_literal_count,
*expected_property_count, language_mode(),
- scope()->uses_super_property(), scope()->calls_eval());
+ scope->uses_super_property(), scope->calls_eval());
}
}
« no previous file with comments | « src/ast/scopes.cc ('k') | src/parsing/preparser.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698