| Index: src/parser.cc
|
| diff --git a/src/parser.cc b/src/parser.cc
|
| index 2961a1aeb8e4e52ff0fadd8c1bbc4e6430ea4c0c..6ba59f3e06f09e871b7a8f7caf2ad9272f139d3f 100644
|
| --- a/src/parser.cc
|
| +++ b/src/parser.cc
|
| @@ -519,6 +519,7 @@ void ParserTraits::CheckPossibleEvalCall(Expression* expression,
|
| if (callee != NULL &&
|
| callee->raw_name() == parser_->ast_value_factory()->eval_string()) {
|
| scope->DeclarationScope()->RecordEvalCall();
|
| + scope->RecordEvalCall();
|
| }
|
| }
|
|
|
| @@ -3329,8 +3330,8 @@ Statement* Parser::DesugarLexicalBindingsInForStatement(
|
| clear_first =
|
| factory()->NewExpressionStatement(assignment, RelocInfo::kNoPosition);
|
| }
|
| - Statement* clear_first_or_next =
|
| - factory()->NewIfStatement(compare, clear_first, next, next->position());
|
| + Statement* clear_first_or_next = factory()->NewIfStatement(
|
| + compare, clear_first, next, RelocInfo::kNoPosition);
|
| inner_block->AddStatement(clear_first_or_next, zone());
|
| }
|
|
|
| @@ -4038,6 +4039,10 @@ FunctionLiteral* Parser::ParseFunctionLiteral(
|
| parenthesized_function_ = false; // The bit was set for this function only.
|
|
|
| if (is_lazily_parsed) {
|
| + for (Scope* s = scope_->outer_scope();
|
| + s != nullptr && (s != s->DeclarationScope()); s = s->outer_scope()) {
|
| + s->ForceContextAllocation();
|
| + }
|
| SkipLazyFunctionBody(&materialized_literal_count,
|
| &expected_property_count, CHECK_OK);
|
| } else {
|
|
|