Chromium Code Reviews| Index: src/parser.cc |
| diff --git a/src/parser.cc b/src/parser.cc |
| index 9d1a40d39b9ebb7b47730b4f287d0abcca684276..093b9f7a45409652faf12b20fe7f297c1bde77fb 100644 |
| --- a/src/parser.cc |
| +++ b/src/parser.cc |
| @@ -665,7 +665,7 @@ Expression* ParserTraits::SuperReference( |
| pos); |
| } |
| -Expression* ParserTraits::ClassLiteral( |
| +Expression* ParserTraits::ClassExpression( |
| const AstRawString* name, Expression* extends, Expression* constructor, |
| ZoneList<ObjectLiteral::Property*>* properties, int pos, |
| AstNodeFactory<AstConstructionVisitor>* factory) { |
| @@ -1974,21 +1974,18 @@ Statement* Parser::ParseClassDeclaration(ZoneList<const AstRawString*>* names, |
| Expression* value = ParseClassLiteral(name, scanner()->location(), |
| is_strict_reserved, pos, CHECK_OK); |
| - Block* block = factory()->NewBlock(NULL, 1, true, pos); |
|
arv (Not doing code reviews)
2014/10/03 21:11:57
No need for this block since we only need to retur
|
| - VariableMode mode = LET; |
| - VariableProxy* proxy = NewUnresolved(name, mode, Interface::NewValue()); |
| + VariableProxy* proxy = NewUnresolved(name, LET, Interface::NewValue()); |
| Declaration* declaration = |
| - factory()->NewVariableDeclaration(proxy, mode, scope_, pos); |
| + factory()->NewVariableDeclaration(proxy, LET, scope_, pos); |
| Declare(declaration, true, CHECK_OK); |
| + proxy->var()->set_initializer_position(pos); |
| Token::Value init_op = Token::INIT_LET; |
| Assignment* assignment = factory()->NewAssignment(init_op, proxy, value, pos); |
| - block->AddStatement( |
| - factory()->NewExpressionStatement(assignment, RelocInfo::kNoPosition), |
| - zone()); |
| - |
| + Statement* assignment_statement = |
| + factory()->NewExpressionStatement(assignment, RelocInfo::kNoPosition); |
| if (names) names->Add(name, zone()); |
| - return block; |
| + return assignment_statement; |
| } |