| Index: src/parsing/parser.h
|
| diff --git a/src/parsing/parser.h b/src/parsing/parser.h
|
| index 0e71357f2fcd027f09ba29d4ff948e86d052f36d..18f9b78d657b94cc89242ece08f6923420a7c6d1 100644
|
| --- a/src/parsing/parser.h
|
| +++ b/src/parsing/parser.h
|
| @@ -138,36 +138,33 @@ struct ParserFormalParameters : FormalParametersBase {
|
| };
|
|
|
| template <>
|
| -class ParserBaseTraits<Parser> {
|
| - public:
|
| - struct Type {
|
| - typedef ParserBase<Parser> Base;
|
| - typedef Parser Impl;
|
| -
|
| - typedef Variable GeneratorVariable;
|
| -
|
| - typedef v8::internal::AstProperties AstProperties;
|
| -
|
| - typedef v8::internal::ExpressionClassifier<ParserBaseTraits<Parser>>
|
| - ExpressionClassifier;
|
| -
|
| - // Return types for traversing functions.
|
| - typedef const AstRawString* Identifier;
|
| - typedef v8::internal::Expression* Expression;
|
| - typedef Yield* YieldExpression;
|
| - typedef v8::internal::FunctionLiteral* FunctionLiteral;
|
| - typedef v8::internal::ClassLiteral* ClassLiteral;
|
| - typedef v8::internal::Literal* Literal;
|
| - typedef ObjectLiteral::Property* ObjectLiteralProperty;
|
| - typedef ZoneList<v8::internal::Expression*>* ExpressionList;
|
| - typedef ZoneList<ObjectLiteral::Property*>* PropertyList;
|
| - typedef ParserFormalParameters::Parameter FormalParameter;
|
| - typedef ParserFormalParameters FormalParameters;
|
| - typedef ZoneList<v8::internal::Statement*>* StatementList;
|
| -
|
| - // For constructing objects returned by the traversing functions.
|
| - typedef AstNodeFactory Factory;
|
| - };
|
| +struct ParserTypes<Parser> {
|
| + typedef ParserBase<Parser> Base;
|
| + typedef Parser Impl;
|
| +
|
| + typedef Variable GeneratorVariable;
|
| +
|
| + typedef v8::internal::AstProperties AstProperties;
|
| +
|
| + typedef v8::internal::ExpressionClassifier<ParserTypes<Parser>>
|
| + ExpressionClassifier;
|
| +
|
| + // Return types for traversing functions.
|
| + typedef const AstRawString* Identifier;
|
| + typedef v8::internal::Expression* Expression;
|
| + typedef Yield* YieldExpression;
|
| + typedef v8::internal::FunctionLiteral* FunctionLiteral;
|
| + typedef v8::internal::ClassLiteral* ClassLiteral;
|
| + typedef v8::internal::Literal* Literal;
|
| + typedef ObjectLiteral::Property* ObjectLiteralProperty;
|
| + typedef ZoneList<v8::internal::Expression*>* ExpressionList;
|
| + typedef ZoneList<ObjectLiteral::Property*>* PropertyList;
|
| + typedef ParserFormalParameters::Parameter FormalParameter;
|
| + typedef ParserFormalParameters FormalParameters;
|
| + typedef ZoneList<v8::internal::Statement*>* StatementList;
|
| +
|
| + // For constructing objects returned by the traversing functions.
|
| + typedef AstNodeFactory Factory;
|
| };
|
|
|
| class Parser : public ParserBase<Parser> {
|
| @@ -197,7 +194,7 @@ class Parser : public ParserBase<Parser> {
|
|
|
| private:
|
| friend class ParserBase<Parser>;
|
| - friend class v8::internal::ExpressionClassifier<ParserBaseTraits<Parser>>;
|
| + friend class v8::internal::ExpressionClassifier<ParserTypes<Parser>>;
|
|
|
| // Runtime encoding of different completion modes.
|
| enum CompletionKind {
|
| @@ -480,7 +477,7 @@ class Parser : public ParserBase<Parser> {
|
|
|
| void DesugarAsyncFunctionBody(const AstRawString* function_name, Scope* scope,
|
| ZoneList<Statement*>* body,
|
| - Type::ExpressionClassifier* classifier,
|
| + ExpressionClassifier* classifier,
|
| FunctionKind kind, FunctionBodyType type,
|
| bool accept_IN, int pos, bool* ok);
|
|
|
| @@ -623,12 +620,11 @@ class Parser : public ParserBase<Parser> {
|
| pos, ok);
|
| }
|
|
|
| - ZoneList<v8::internal::Expression*>* PrepareSpreadArguments(
|
| - ZoneList<v8::internal::Expression*>* list);
|
| - Expression* SpreadCall(Expression* function,
|
| - ZoneList<v8::internal::Expression*>* args, int pos);
|
| - Expression* SpreadCallNew(Expression* function,
|
| - ZoneList<v8::internal::Expression*>* args, int pos);
|
| + ZoneList<Expression*>* PrepareSpreadArguments(ZoneList<Expression*>* list);
|
| + Expression* SpreadCall(Expression* function, ZoneList<Expression*>* args,
|
| + int pos);
|
| + Expression* SpreadCallNew(Expression* function, ZoneList<Expression*>* args,
|
| + int pos);
|
|
|
| void SetLanguageMode(Scope* scope, LanguageMode mode);
|
| void RaiseLanguageMode(LanguageMode mode);
|
| @@ -943,22 +939,20 @@ class Parser : public ParserBase<Parser> {
|
| return factory()->NewStringLiteral(symbol, pos);
|
| }
|
|
|
| - V8_INLINE ZoneList<v8::internal::Expression*>* NewExpressionList(
|
| - int size) const {
|
| - return new (zone()) ZoneList<v8::internal::Expression*>(size, zone());
|
| + V8_INLINE ZoneList<Expression*>* NewExpressionList(int size) const {
|
| + return new (zone()) ZoneList<Expression*>(size, zone());
|
| }
|
| V8_INLINE ZoneList<ObjectLiteral::Property*>* NewPropertyList(
|
| int size) const {
|
| return new (zone()) ZoneList<ObjectLiteral::Property*>(size, zone());
|
| }
|
| - V8_INLINE ZoneList<v8::internal::Statement*>* NewStatementList(
|
| - int size) const {
|
| - return new (zone()) ZoneList<v8::internal::Statement*>(size, zone());
|
| + V8_INLINE ZoneList<Statement*>* NewStatementList(int size) const {
|
| + return new (zone()) ZoneList<Statement*>(size, zone());
|
| }
|
|
|
| V8_INLINE void AddParameterInitializationBlock(
|
| - const ParserFormalParameters& parameters,
|
| - ZoneList<v8::internal::Statement*>* body, bool is_async, bool* ok) {
|
| + const ParserFormalParameters& parameters, ZoneList<Statement*>* body,
|
| + bool is_async, bool* ok) {
|
| if (parameters.is_simple) return;
|
| auto* init_block = BuildParameterInitializationBlock(parameters, ok);
|
| if (!*ok) return;
|
| @@ -984,7 +978,7 @@ class Parser : public ParserBase<Parser> {
|
| V8_INLINE void DeclareFormalParameter(
|
| DeclarationScope* scope,
|
| const ParserFormalParameters::Parameter& parameter,
|
| - Type::ExpressionClassifier* classifier) {
|
| + ExpressionClassifier* classifier) {
|
| bool is_duplicate = false;
|
| bool is_simple = classifier->is_simple_parameter_list();
|
| auto name = is_simple || parameter.is_rest
|
| @@ -1029,7 +1023,7 @@ class Parser : public ParserBase<Parser> {
|
| void SetFunctionNameFromIdentifierRef(Expression* value,
|
| Expression* identifier);
|
|
|
| - V8_INLINE ZoneList<typename Type::ExpressionClassifier::Error>*
|
| + V8_INLINE ZoneList<typename ExpressionClassifier::Error>*
|
| GetReportedErrorList() const {
|
| return function_state_->GetReportedErrorList();
|
| }
|
|
|