| OLD | NEW |
| 1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 the V8 project authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #ifndef V8_PREPARSER_H | 5 #ifndef V8_PREPARSER_H |
| 6 #define V8_PREPARSER_H | 6 #define V8_PREPARSER_H |
| 7 | 7 |
| 8 #include "src/bailout-reason.h" | 8 #include "src/bailout-reason.h" |
| 9 #include "src/expression-classifier.h" | 9 #include "src/expression-classifier.h" |
| 10 #include "src/func-name-inferrer.h" | 10 #include "src/func-name-inferrer.h" |
| (...skipping 1690 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1701 return EmptyExpression(); | 1701 return EmptyExpression(); |
| 1702 } | 1702 } |
| 1703 inline void MaterializeTemplateCallsiteLiterals(); | 1703 inline void MaterializeTemplateCallsiteLiterals(); |
| 1704 PreParserExpression NoTemplateTag() { | 1704 PreParserExpression NoTemplateTag() { |
| 1705 return PreParserExpression::NoTemplateTag(); | 1705 return PreParserExpression::NoTemplateTag(); |
| 1706 } | 1706 } |
| 1707 static bool IsTaggedTemplate(const PreParserExpression tag) { | 1707 static bool IsTaggedTemplate(const PreParserExpression tag) { |
| 1708 return !tag.IsNoTemplateTag(); | 1708 return !tag.IsNoTemplateTag(); |
| 1709 } | 1709 } |
| 1710 | 1710 |
| 1711 void AddFormalParameter( | 1711 void AddFormalParameter(PreParserFormalParameters* parameters, |
| 1712 PreParserFormalParameters* parameters, PreParserExpression pattern, | 1712 PreParserExpression pattern, |
| 1713 PreParserExpression initializer, bool is_rest) { | 1713 PreParserExpression initializer, |
| 1714 int initializer_end_position, bool is_rest) { |
| 1714 ++parameters->arity; | 1715 ++parameters->arity; |
| 1715 } | 1716 } |
| 1716 void DeclareFormalParameter(Scope* scope, PreParserIdentifier parameter, | 1717 void DeclareFormalParameter(Scope* scope, PreParserIdentifier parameter, |
| 1717 ExpressionClassifier* classifier) { | 1718 ExpressionClassifier* classifier) { |
| 1718 if (!classifier->is_simple_parameter_list()) { | 1719 if (!classifier->is_simple_parameter_list()) { |
| 1719 scope->SetHasNonSimpleParameters(); | 1720 scope->SetHasNonSimpleParameters(); |
| 1720 } | 1721 } |
| 1721 } | 1722 } |
| 1722 | 1723 |
| 1723 void CheckConflictingVarDeclarations(Scope* scope, bool* ok) {} | 1724 void CheckConflictingVarDeclarations(Scope* scope, bool* ok) {} |
| (...skipping 2106 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3830 ExpressionClassifier init_classifier; | 3831 ExpressionClassifier init_classifier; |
| 3831 initializer = ParseAssignmentExpression(true, &init_classifier, ok); | 3832 initializer = ParseAssignmentExpression(true, &init_classifier, ok); |
| 3832 if (!*ok) return; | 3833 if (!*ok) return; |
| 3833 ValidateExpression(&init_classifier, ok); | 3834 ValidateExpression(&init_classifier, ok); |
| 3834 ValidateFormalParameterInitializer(&init_classifier, ok); | 3835 ValidateFormalParameterInitializer(&init_classifier, ok); |
| 3835 if (!*ok) return; | 3836 if (!*ok) return; |
| 3836 parameters->is_simple = false; | 3837 parameters->is_simple = false; |
| 3837 classifier->RecordNonSimpleParameter(); | 3838 classifier->RecordNonSimpleParameter(); |
| 3838 } | 3839 } |
| 3839 | 3840 |
| 3840 Traits::AddFormalParameter(parameters, pattern, initializer, is_rest); | 3841 Traits::AddFormalParameter(parameters, pattern, initializer, |
| 3842 scanner()->location().end_pos, is_rest); |
| 3841 } | 3843 } |
| 3842 | 3844 |
| 3843 | 3845 |
| 3844 template <class Traits> | 3846 template <class Traits> |
| 3845 void ParserBase<Traits>::ParseFormalParameterList( | 3847 void ParserBase<Traits>::ParseFormalParameterList( |
| 3846 FormalParametersT* parameters, ExpressionClassifier* classifier, bool* ok) { | 3848 FormalParametersT* parameters, ExpressionClassifier* classifier, bool* ok) { |
| 3847 // FormalParameters[Yield,GeneratorParameter] : | 3849 // FormalParameters[Yield,GeneratorParameter] : |
| 3848 // [empty] | 3850 // [empty] |
| 3849 // FormalParameterList[?Yield, ?GeneratorParameter] | 3851 // FormalParameterList[?Yield, ?GeneratorParameter] |
| 3850 // | 3852 // |
| (...skipping 399 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4250 return; | 4252 return; |
| 4251 } | 4253 } |
| 4252 has_seen_constructor_ = true; | 4254 has_seen_constructor_ = true; |
| 4253 return; | 4255 return; |
| 4254 } | 4256 } |
| 4255 } | 4257 } |
| 4256 } // namespace internal | 4258 } // namespace internal |
| 4257 } // namespace v8 | 4259 } // namespace v8 |
| 4258 | 4260 |
| 4259 #endif // V8_PREPARSER_H | 4261 #endif // V8_PREPARSER_H |
| OLD | NEW |