| Index: src/parsing/parser.cc
|
| diff --git a/src/parsing/parser.cc b/src/parsing/parser.cc
|
| index b9d26995f1b1e19078b93de222c03bd16f08de64..88b3808f10f0a17e7e4269b136ff36d49aa6156c 100644
|
| --- a/src/parsing/parser.cc
|
| +++ b/src/parsing/parser.cc
|
| @@ -167,7 +167,6 @@ void Parser::SetCachedData(ParseInfo* info) {
|
| FunctionLiteral* Parser::DefaultConstructor(const AstRawString* name,
|
| bool call_super, int pos,
|
| int end_pos) {
|
| - int materialized_literal_count = -1;
|
| int expected_property_count = -1;
|
| const int parameter_count = 0;
|
| if (name == nullptr) name = ast_value_factory()->empty_string();
|
| @@ -207,14 +206,12 @@ FunctionLiteral* Parser::DefaultConstructor(const AstRawString* name,
|
| body->Add(factory()->NewReturnStatement(call, pos), zone());
|
| }
|
|
|
| - materialized_literal_count = function_state.materialized_literal_count();
|
| expected_property_count = function_state.expected_property_count();
|
| }
|
|
|
| FunctionLiteral* function_literal = factory()->NewFunctionLiteral(
|
| - name, function_scope, body, materialized_literal_count,
|
| - expected_property_count, parameter_count, parameter_count,
|
| - FunctionLiteral::kNoDuplicateParameters,
|
| + name, function_scope, body, expected_property_count, parameter_count,
|
| + parameter_count, FunctionLiteral::kNoDuplicateParameters,
|
| FunctionLiteral::kAnonymousExpression, default_eager_compile_hint(), pos,
|
| true, GetNextFunctionLiteralId());
|
|
|
| @@ -748,8 +745,8 @@ FunctionLiteral* Parser::DoParseProgram(ParseInfo* info) {
|
| RewriteDestructuringAssignments();
|
| int parameter_count = parsing_module_ ? 1 : 0;
|
| result = factory()->NewScriptOrEvalFunctionLiteral(
|
| - scope, body, function_state.materialized_literal_count(),
|
| - function_state.expected_property_count(), parameter_count);
|
| + scope, body, function_state.expected_property_count(),
|
| + parameter_count);
|
| }
|
| }
|
|
|
| @@ -2593,7 +2590,6 @@ FunctionLiteral* Parser::ParseFunctionLiteral(
|
| use_temp_zone && FLAG_lazy_inner_functions && !is_lazy_top_level_function;
|
|
|
| ZoneList<Statement*>* body = nullptr;
|
| - int materialized_literal_count = -1;
|
| int expected_property_count = -1;
|
| bool should_be_used_once_hint = false;
|
| int num_parameters = -1;
|
| @@ -2638,11 +2634,10 @@ FunctionLiteral* Parser::ParseFunctionLiteral(
|
| if (is_lazy_top_level_function || is_lazy_inner_function) {
|
| Scanner::BookmarkScope bookmark(scanner());
|
| bookmark.Set();
|
| - LazyParsingResult result =
|
| - SkipFunction(kind, scope, &num_parameters, &function_length,
|
| - &has_duplicate_parameters, &materialized_literal_count,
|
| - &expected_property_count, is_lazy_inner_function,
|
| - is_lazy_top_level_function, CHECK_OK);
|
| + LazyParsingResult result = SkipFunction(
|
| + kind, scope, &num_parameters, &function_length,
|
| + &has_duplicate_parameters, &expected_property_count,
|
| + is_lazy_inner_function, is_lazy_top_level_function, CHECK_OK);
|
|
|
| if (result == kLazyParsingAborted) {
|
| DCHECK(is_lazy_top_level_function);
|
| @@ -2662,10 +2657,10 @@ FunctionLiteral* Parser::ParseFunctionLiteral(
|
| }
|
|
|
| if (!is_lazy_top_level_function && !is_lazy_inner_function) {
|
| - body = ParseFunction(
|
| - function_name, pos, kind, function_type, scope, &num_parameters,
|
| - &function_length, &has_duplicate_parameters,
|
| - &materialized_literal_count, &expected_property_count, CHECK_OK);
|
| + body = ParseFunction(function_name, pos, kind, function_type, scope,
|
| + &num_parameters, &function_length,
|
| + &has_duplicate_parameters, &expected_property_count,
|
| + CHECK_OK);
|
| }
|
|
|
| DCHECK(use_temp_zone || !is_lazy_top_level_function);
|
| @@ -2721,10 +2716,9 @@ FunctionLiteral* Parser::ParseFunctionLiteral(
|
|
|
| // Note that the FunctionLiteral needs to be created in the main Zone again.
|
| FunctionLiteral* function_literal = factory()->NewFunctionLiteral(
|
| - function_name, scope, body, materialized_literal_count,
|
| - expected_property_count, num_parameters, function_length,
|
| - duplicate_parameters, function_type, eager_compile_hint, pos, true,
|
| - function_literal_id);
|
| + function_name, scope, body, expected_property_count, num_parameters,
|
| + function_length, duplicate_parameters, function_type, eager_compile_hint,
|
| + pos, true, function_literal_id);
|
| function_literal->set_function_token_position(function_token_pos);
|
| if (should_be_used_once_hint)
|
| function_literal->set_should_be_used_once_hint();
|
| @@ -2739,8 +2733,8 @@ FunctionLiteral* Parser::ParseFunctionLiteral(
|
| Parser::LazyParsingResult Parser::SkipFunction(
|
| FunctionKind kind, DeclarationScope* function_scope, int* num_parameters,
|
| int* function_length, bool* has_duplicate_parameters,
|
| - int* materialized_literal_count, int* expected_property_count,
|
| - bool is_inner_function, bool may_abort, bool* ok) {
|
| + int* expected_property_count, bool is_inner_function, bool may_abort,
|
| + bool* ok) {
|
| DCHECK_NE(kNoSourcePosition, function_scope->start_position());
|
| if (produce_cached_parse_data()) CHECK(log_);
|
|
|
| @@ -2766,7 +2760,6 @@ Parser::LazyParsingResult Parser::SkipFunction(
|
| *num_parameters = entry.num_parameters();
|
| *function_length = entry.function_length();
|
| *has_duplicate_parameters = entry.has_duplicate_parameters();
|
| - *materialized_literal_count = entry.literal_count();
|
| *expected_property_count = entry.property_count();
|
| SetLanguageMode(function_scope, entry.language_mode());
|
| if (entry.uses_super_property())
|
| @@ -2824,7 +2817,6 @@ Parser::LazyParsingResult Parser::SkipFunction(
|
| *num_parameters = logger->num_parameters();
|
| *function_length = logger->function_length();
|
| *has_duplicate_parameters = logger->has_duplicate_parameters();
|
| - *materialized_literal_count = logger->literals();
|
| *expected_property_count = logger->properties();
|
| SkipFunctionLiterals(logger->num_inner_functions());
|
| if (!is_inner_function && produce_cached_parse_data()) {
|
| @@ -2832,7 +2824,7 @@ Parser::LazyParsingResult Parser::SkipFunction(
|
| log_->LogFunction(
|
| function_scope->start_position(), function_scope->end_position(),
|
| *num_parameters, *function_length, *has_duplicate_parameters,
|
| - *materialized_literal_count, *expected_property_count, language_mode(),
|
| + *expected_property_count, language_mode(),
|
| function_scope->uses_super_property(), function_scope->calls_eval(),
|
| logger->num_inner_functions());
|
| }
|
| @@ -3111,8 +3103,7 @@ ZoneList<Statement*>* Parser::ParseFunction(
|
| const AstRawString* function_name, int pos, FunctionKind kind,
|
| FunctionLiteral::FunctionType function_type,
|
| DeclarationScope* function_scope, int* num_parameters, int* function_length,
|
| - bool* has_duplicate_parameters, int* materialized_literal_count,
|
| - int* expected_property_count, bool* ok) {
|
| + bool* has_duplicate_parameters, int* expected_property_count, bool* ok) {
|
| ParsingModeScope mode(this, allow_lazy_ ? PARSE_LAZILY : PARSE_EAGERLY);
|
|
|
| FunctionState function_state(&function_state_, &scope_state_, function_scope);
|
| @@ -3150,7 +3141,6 @@ ZoneList<Statement*>* Parser::ParseFunction(
|
| *has_duplicate_parameters =
|
| !classifier()->is_valid_formal_parameter_list_without_duplicates();
|
|
|
| - *materialized_literal_count = function_state.materialized_literal_count();
|
| *expected_property_count = function_state.expected_property_count();
|
| return body;
|
| }
|
| @@ -3516,10 +3506,6 @@ Expression* Parser::CloseTemplateLiteral(TemplateLiteralState* state, int start,
|
| } else {
|
| uint32_t hash = ComputeTemplateLiteralHash(lit);
|
|
|
| - // cooked and raw indexes.
|
| - function_state_->NextMaterializedLiteralIndex();
|
| - function_state_->NextMaterializedLiteralIndex();
|
| -
|
| // $getTemplateCallSite
|
| ZoneList<Expression*>* args = new (zone()) ZoneList<Expression*>(4, zone());
|
| args->Add(factory()->NewArrayLiteral(
|
| @@ -3624,7 +3610,6 @@ ZoneList<Expression*>* Parser::PrepareSpreadArguments(
|
| while (i < n && !list->at(i)->IsSpread()) {
|
| unspread->Add(list->at(i++), zone());
|
| }
|
| - function_state_->NextMaterializedLiteralIndex();
|
| args->Add(factory()->NewArrayLiteral(unspread, kNoSourcePosition),
|
| zone());
|
|
|
|
|