Chromium Code Reviews| Index: src/parser.cc |
| diff --git a/src/parser.cc b/src/parser.cc |
| index a4735520366b9f91e98dcc592fc6929fd7de72a7..c1841c94cda942309a4dfbc99508ea74b0497cc4 100644 |
| --- a/src/parser.cc |
| +++ b/src/parser.cc |
| @@ -675,7 +675,10 @@ const AstRawString* ParserTraits::GetNextSymbol(Scanner* scanner) { |
| Expression* ParserTraits::ThisExpression(Scope* scope, AstNodeFactory* factory, |
| int pos) { |
| - return factory->NewVariableProxy(scope->receiver(), pos); |
| + return scope->NewUnresolved(factory, |
| + ast_value_factory()->this_string(), |
|
wingo
2015/02/06 17:31:19
here probably we will have to pass in Variable::TH
aperez
2015/02/09 16:08:14
Acknowledged.
|
| + Interface::NewValue(), |
| + RelocInfo::kNoPosition); |
| } |
| Expression* ParserTraits::SuperReference(Scope* scope, AstNodeFactory* factory, |
| @@ -729,7 +732,7 @@ Expression* ParserTraits::ExpressionFromIdentifier(const AstRawString* name, |
| // for Traits::DeclareArrowParametersFromExpression() to be able to |
| // pick the names of the parameters. |
| return parser_->parsing_lazy_arrow_parameters_ |
| - ? factory->NewVariableProxy(name, false, interface, pos) |
| + ? factory->NewVariableProxy(name, interface, pos) |
|
wingo
2015/02/06 17:31:19
instead of removing false, replace with Variable::
aperez
2015/02/09 16:08:14
Acknowledged.
|
| : scope->NewUnresolved(factory, name, interface, pos); |
| } |
| @@ -1852,7 +1855,7 @@ void Parser::Declare(Declaration* declaration, bool resolve, bool* ok) { |
| DCHECK(resolve); // should be set by all callers |
| Variable::Kind kind = Variable::NORMAL; |
| var = new (zone()) |
| - Variable(declaration_scope, name, mode, true, kind, |
| + Variable(declaration_scope, name, mode, kind, |
| kNeedsInitialization, kNotAssigned, proxy->interface()); |
| } else if (declaration_scope->is_eval_scope() && |
| declaration_scope->strict_mode() == SLOPPY) { |
| @@ -1861,7 +1864,7 @@ void Parser::Declare(Declaration* declaration, bool resolve, bool* ok) { |
| // DeclareLookupSlot runtime function. |
| Variable::Kind kind = Variable::NORMAL; |
| // TODO(sigurds) figure out if kNotAssigned is OK here |
| - var = new (zone()) Variable(declaration_scope, name, mode, true, kind, |
| + var = new (zone()) Variable(declaration_scope, name, mode, kind, |
| declaration->initialization(), kNotAssigned, |
| proxy->interface()); |
| var->AllocateTo(Variable::LOOKUP, -1); |
| @@ -3748,9 +3751,8 @@ FunctionLiteral* Parser::ParseFunctionLiteral( |
| ? CONST : CONST_LEGACY; |
| DCHECK(function_name != NULL); |
| fvar = new (zone()) |
| - Variable(scope_, function_name, fvar_mode, true /* is valid LHS */, |
| - Variable::NORMAL, kCreatedInitialized, kNotAssigned, |
| - Interface::NewConst()); |
| + Variable(scope_, function_name, fvar_mode, Variable::NORMAL, |
| + kCreatedInitialized, kNotAssigned, Interface::NewConst()); |
| VariableProxy* proxy = factory()->NewVariableProxy(fvar); |
| VariableDeclaration* fvar_declaration = factory()->NewVariableDeclaration( |
| proxy, fvar_mode, scope_, RelocInfo::kNoPosition); |