Index: src/parsing/parser.cc |
diff --git a/src/parsing/parser.cc b/src/parsing/parser.cc |
index 19b4891281a1bf82676755a39f64bfca5be9feb9..ff9d9fe7e2e50b581cf96c7a93aae3376c931fb8 100644 |
--- a/src/parsing/parser.cc |
+++ b/src/parsing/parser.cc |
@@ -690,19 +690,16 @@ const AstRawString* ParserTraits::GetNextSymbol(Scanner* scanner) { |
return parser_->scanner()->NextSymbol(parser_->ast_value_factory()); |
} |
- |
-Expression* ParserTraits::ThisExpression(Scope* scope, AstNodeFactory* factory, |
- int pos) { |
- return scope->NewUnresolved(factory, |
- parser_->ast_value_factory()->this_string(), |
- Variable::THIS, pos, pos + 4); |
+Expression* ParserTraits::ThisExpression(AstNodeFactory* factory, int pos) { |
+ return parser_->scope()->NewUnresolved( |
+ factory, parser_->ast_value_factory()->this_string(), Variable::THIS, pos, |
+ pos + 4); |
} |
-Expression* ParserTraits::NewSuperPropertyReference(Scope* scope, |
- AstNodeFactory* factory, |
+Expression* ParserTraits::NewSuperPropertyReference(AstNodeFactory* factory, |
int pos) { |
// this_function[home_object_symbol] |
- VariableProxy* this_function_proxy = scope->NewUnresolved( |
+ VariableProxy* this_function_proxy = parser_->scope()->NewUnresolved( |
factory, parser_->ast_value_factory()->this_function_string(), |
Variable::NORMAL, pos); |
Expression* home_object_symbol_literal = |
@@ -710,38 +707,33 @@ Expression* ParserTraits::NewSuperPropertyReference(Scope* scope, |
Expression* home_object = factory->NewProperty( |
this_function_proxy, home_object_symbol_literal, pos); |
return factory->NewSuperPropertyReference( |
- ThisExpression(scope, factory, pos)->AsVariableProxy(), home_object, pos); |
+ ThisExpression(factory, pos)->AsVariableProxy(), home_object, pos); |
} |
-Expression* ParserTraits::NewSuperCallReference(Scope* scope, |
- AstNodeFactory* factory, |
+Expression* ParserTraits::NewSuperCallReference(AstNodeFactory* factory, |
int pos) { |
- VariableProxy* new_target_proxy = scope->NewUnresolved( |
+ VariableProxy* new_target_proxy = parser_->scope()->NewUnresolved( |
factory, parser_->ast_value_factory()->new_target_string(), |
Variable::NORMAL, pos); |
- VariableProxy* this_function_proxy = scope->NewUnresolved( |
+ VariableProxy* this_function_proxy = parser_->scope()->NewUnresolved( |
factory, parser_->ast_value_factory()->this_function_string(), |
Variable::NORMAL, pos); |
return factory->NewSuperCallReference( |
- ThisExpression(scope, factory, pos)->AsVariableProxy(), new_target_proxy, |
+ ThisExpression(factory, pos)->AsVariableProxy(), new_target_proxy, |
this_function_proxy, pos); |
} |
- |
-Expression* ParserTraits::NewTargetExpression(Scope* scope, |
- AstNodeFactory* factory, |
+Expression* ParserTraits::NewTargetExpression(AstNodeFactory* factory, |
int pos) { |
static const int kNewTargetStringLength = 10; |
- auto proxy = scope->NewUnresolved( |
+ auto proxy = parser_->scope()->NewUnresolved( |
factory, parser_->ast_value_factory()->new_target_string(), |
Variable::NORMAL, pos, pos + kNewTargetStringLength); |
proxy->set_is_new_target(); |
return proxy; |
} |
- |
-Expression* ParserTraits::FunctionSentExpression(Scope* scope, |
- AstNodeFactory* factory, |
+Expression* ParserTraits::FunctionSentExpression(AstNodeFactory* factory, |
int pos) { |
// We desugar function.sent into %_GeneratorGetInputOrDebugPos(generator). |
Zone* zone = parser_->zone(); |
@@ -783,11 +775,10 @@ Literal* ParserTraits::ExpressionFromLiteral(Token::Value token, int pos, |
Expression* ParserTraits::ExpressionFromIdentifier(const AstRawString* name, |
int start_position, |
int end_position, |
- Scope* scope, |
AstNodeFactory* factory) { |
if (parser_->fni_ != NULL) parser_->fni_->PushVariableName(name); |
- return scope->NewUnresolved(factory, name, Variable::NORMAL, start_position, |
- end_position); |
+ return parser_->scope()->NewUnresolved(factory, name, Variable::NORMAL, |
+ start_position, end_position); |
} |
@@ -1310,7 +1301,7 @@ void Parser::ParseStatementList(ZoneList<Statement*>* body, int end_token, |
token_loc.end_pos - token_loc.beg_pos == |
ast_value_factory()->use_strict_string()->length() + 2; |
if (use_strict_found) { |
- if (is_sloppy(this->scope()->language_mode())) { |
+ if (is_sloppy(language_mode())) { |
RaiseLanguageMode(STRICT); |
} |
@@ -2770,7 +2761,7 @@ Statement* Parser::ParseReturnStatement(bool* ok) { |
tok == Token::RBRACE || |
tok == Token::EOS) { |
if (IsSubclassConstructor(function_state_->kind())) { |
- return_value = ThisExpression(scope(), factory(), loc.beg_pos); |
+ return_value = ThisExpression(factory(), loc.beg_pos); |
} else { |
return_value = GetLiteralUndefined(position()); |
} |
@@ -2818,9 +2809,9 @@ Statement* Parser::ParseReturnStatement(bool* ok) { |
factory()->NewUndefinedLiteral(kNoSourcePosition), pos); |
// is_undefined ? this : is_object_conditional |
- return_value = factory()->NewConditional( |
- is_undefined, ThisExpression(scope(), factory(), pos), |
- is_object_conditional, pos); |
+ return_value = factory()->NewConditional(is_undefined, |
+ ThisExpression(factory(), pos), |
+ is_object_conditional, pos); |
} else { |
ReturnExprScope maybe_allow_tail_calls( |
function_state_, ReturnExprContext::kInsideValidReturnStatement); |
@@ -4653,7 +4644,7 @@ void Parser::SkipLazyFunctionBody(int* materialized_literal_count, |
// Position right after terminal '}'. |
int body_end = scanner()->location().end_pos; |
log_->LogFunction(function_block_pos, body_end, *materialized_literal_count, |
- *expected_property_count, scope()->language_mode(), |
+ *expected_property_count, language_mode(), |
scope()->uses_super_property(), scope()->calls_eval()); |
} |
} |
@@ -4828,7 +4819,7 @@ Expression* Parser::BuildCreateJSGeneratorObject(int pos, FunctionKind kind) { |
args->Add(factory()->NewThisFunction(pos), zone()); |
args->Add(IsArrowFunction(kind) |
? GetLiteralUndefined(pos) |
- : ThisExpression(scope(), factory(), kNoSourcePosition), |
+ : ThisExpression(factory(), kNoSourcePosition), |
zone()); |
return factory()->NewCallRuntime(Runtime::kCreateJSGeneratorObject, args, |
pos); |
@@ -4949,7 +4940,7 @@ ZoneList<Statement*>* Parser::ParseEagerFunctionBody( |
if (IsSubclassConstructor(kind)) { |
body->Add(factory()->NewReturnStatement( |
- this->ThisExpression(scope(), factory(), kNoSourcePosition), |
+ this->ThisExpression(factory(), kNoSourcePosition), |
kNoSourcePosition), |
zone()); |
} |
@@ -5767,8 +5758,7 @@ Expression* Parser::SpreadCall(Expression* function, |
if (function->IsProperty()) { |
// Method calls |
if (function->AsProperty()->IsSuperAccess()) { |
- Expression* home = |
- ThisExpression(scope(), factory(), kNoSourcePosition); |
+ Expression* home = ThisExpression(factory(), kNoSourcePosition); |
args->InsertAt(0, function, zone()); |
args->InsertAt(1, home, zone()); |
} else { |
@@ -6013,9 +6003,8 @@ Expression* Parser::RewriteAssignExponentiation(Expression* left, |
Expression* result; |
DCHECK_NOT_NULL(lhs->raw_name()); |
- result = |
- this->ExpressionFromIdentifier(lhs->raw_name(), lhs->position(), |
- lhs->end_position(), scope(), factory()); |
+ result = this->ExpressionFromIdentifier(lhs->raw_name(), lhs->position(), |
+ lhs->end_position(), factory()); |
args->Add(left, zone()); |
args->Add(right, zone()); |
Expression* call = |
@@ -6546,7 +6535,7 @@ Expression* ParserTraits::RewriteYieldStar( |
// input = function.sent; |
Statement* get_input; |
{ |
- Expression* function_sent = FunctionSentExpression(scope, factory, nopos); |
+ Expression* function_sent = FunctionSentExpression(factory, nopos); |
Expression* input_proxy = factory->NewVariableProxy(var_input); |
Expression* assignment = factory->NewAssignment( |
Token::ASSIGN, input_proxy, function_sent, nopos); |