Chromium Code Reviews| Index: src/parser.cc |
| diff --git a/src/parser.cc b/src/parser.cc |
| index 057b2e9eb2ef961bf296657ecfe5f25b4c9400a9..53e96f3f96a719dedb74c0c2a471a8886aa8939d 100644 |
| --- a/src/parser.cc |
| +++ b/src/parser.cc |
| @@ -408,7 +408,7 @@ bool ParserTraits::IsThisProperty(Expression* expression) { |
| DCHECK(expression != NULL); |
| Property* property = expression->AsProperty(); |
| return property != NULL && |
| - property->obj()->AsVariableProxy() != NULL && |
| + property->obj()->IsVariableProxy() && |
| property->obj()->AsVariableProxy()->is_this(); |
| } |
| @@ -433,8 +433,7 @@ void ParserTraits::PushPropertyName(FuncNameInferrer* fni, |
| void ParserTraits::CheckAssigningFunctionLiteralToProperty(Expression* left, |
| Expression* right) { |
| DCHECK(left != NULL); |
| - if (left->AsProperty() != NULL && |
| - right->AsFunctionLiteral() != NULL) { |
| + if (left->IsProperty() && right->IsFunctionLiteral()) { |
| right->AsFunctionLiteral()->set_pretenure(); |
| } |
| } |
| @@ -717,7 +716,6 @@ Literal* ParserTraits::ExpressionFromLiteral(Token::Value token, int pos, |
| Expression* ParserTraits::ExpressionFromIdentifier(const AstRawString* name, |
| int pos, Scope* scope, |
| AstNodeFactory* factory) { |
| - if (parser_->fni_ != NULL) parser_->fni_->PushVariableName(name); |
|
arv (Not doing code reviews)
2014/12/10 23:38:13
I can problably revert this now. I don't call thes
arv (Not doing code reviews)
2014/12/11 23:10:33
Done.
|
| // The name may refer to a module instance object, so its type is unknown. |
| #ifdef DEBUG |
| if (FLAG_print_interface_details) |
| @@ -731,7 +729,6 @@ Expression* ParserTraits::ExpressionFromIdentifier(const AstRawString* name, |
| Expression* ParserTraits::ExpressionFromString(int pos, Scanner* scanner, |
| AstNodeFactory* factory) { |
| const AstRawString* symbol = GetSymbol(scanner); |
| - if (parser_->fni_ != NULL) parser_->fni_->PushLiteralName(symbol); |
| return factory->NewStringLiteral(symbol, pos); |
| } |
| @@ -806,6 +803,8 @@ Parser::Parser(CompilationInfo* info, ParseInfo* parse_info) |
| set_allow_harmony_templates(FLAG_harmony_templates); |
| set_allow_harmony_sloppy(FLAG_harmony_sloppy); |
| set_allow_harmony_unicode(FLAG_harmony_unicode); |
| + set_allow_harmony_computed_property_names( |
| + FLAG_harmony_computed_property_names); |
| for (int feature = 0; feature < v8::Isolate::kUseCounterFeatureCount; |
| ++feature) { |
| use_counts_[feature] = 0; |
| @@ -3976,6 +3975,8 @@ PreParser::PreParseResult Parser::ParseLazyFunctionBodyWithPreParser( |
| reusable_preparser_->set_allow_harmony_templates(allow_harmony_templates()); |
| reusable_preparser_->set_allow_harmony_sloppy(allow_harmony_sloppy()); |
| reusable_preparser_->set_allow_harmony_unicode(allow_harmony_unicode()); |
| + reusable_preparser_->set_allow_harmony_computed_property_names( |
| + allow_harmony_computed_property_names()); |
| } |
| PreParser::PreParseResult result = |
| reusable_preparser_->PreParseLazyFunction(strict_mode(), |
| @@ -4035,8 +4036,10 @@ ClassLiteral* Parser::ParseClassLiteral(const AstRawString* name, |
| if (fni_ != NULL) fni_->Enter(); |
| const bool in_class = true; |
| const bool is_static = false; |
| + bool is_computed_name = false; |
|
Dmitry Lomov (no reviews)
2014/12/11 12:34:35
this should be has_seen_computed_name, right? Or w
arv (Not doing code reviews)
2014/12/11 23:10:33
Classes do not care about computed property name h
|
| ObjectLiteral::Property* property = ParsePropertyDefinition( |
| - NULL, in_class, is_static, &has_seen_constructor, CHECK_OK); |
| + NULL, in_class, is_static, &is_computed_name, &has_seen_constructor, |
| + CHECK_OK); |
| if (has_seen_constructor && constructor == NULL) { |
| constructor = GetPropertyValue(property); |