| Index: src/parsing/parser-base.h
|
| diff --git a/src/parsing/parser-base.h b/src/parsing/parser-base.h
|
| index 1412748f40524459e082b2d0cf4411e079c14c5e..96741fb4364a97f0639dd52f303f2a7651d6e5e5 100644
|
| --- a/src/parsing/parser-base.h
|
| +++ b/src/parsing/parser-base.h
|
| @@ -175,23 +175,19 @@ struct FormalParametersBase {
|
| // // Synonyms for ParserBase<Impl> and Impl, respectively.
|
| // typedef Base;
|
| // typedef Impl;
|
| -// // TODO(nikolaos): these two will probably go away, as they are
|
| +// // TODO(nikolaos): this one will probably go away, as it is
|
| // // not related to pure parsing.
|
| // typedef GeneratorVariable;
|
| -// typedef AstProperties;
|
| // // Return types for traversing functions.
|
| // typedef Identifier;
|
| // typedef Expression;
|
| -// typedef YieldExpression;
|
| // typedef FunctionLiteral;
|
| -// typedef ClassLiteral;
|
| -// typedef Literal;
|
| // typedef ObjectLiteralProperty;
|
| // typedef ExpressionList;
|
| // typedef PropertyList;
|
| -// typedef FormalParameter;
|
| // typedef FormalParameters;
|
| // typedef StatementList;
|
| +// typedef Block;
|
| // // For constructing objects returned by the traversing functions.
|
| // typedef Factory;
|
| // };
|
| @@ -204,17 +200,17 @@ class ParserBase {
|
| public:
|
| // Shorten type names defined by ParserTypes<Impl>.
|
| typedef ParserTypes<Impl> Types;
|
| - typedef typename Types::Expression ExpressionT;
|
| typedef typename Types::Identifier IdentifierT;
|
| - typedef typename Types::FormalParameter FormalParameterT;
|
| - typedef typename Types::FormalParameters FormalParametersT;
|
| + typedef typename Types::Expression ExpressionT;
|
| typedef typename Types::FunctionLiteral FunctionLiteralT;
|
| - typedef typename Types::Literal LiteralT;
|
| typedef typename Types::ObjectLiteralProperty ObjectLiteralPropertyT;
|
| + typedef typename Types::ExpressionList ExpressionListT;
|
| + typedef typename Types::PropertyList PropertyListT;
|
| + typedef typename Types::FormalParameters FormalParametersT;
|
| typedef typename Types::StatementList StatementListT;
|
| + typedef typename Types::Block BlockT;
|
| typedef typename v8::internal::ExpressionClassifier<Types>
|
| ExpressionClassifier;
|
| - typedef typename Types::Block BlockT;
|
|
|
| // All implementation-specific methods must be called through this.
|
| Impl* impl() { return static_cast<Impl*>(this); }
|
| @@ -1145,10 +1141,10 @@ class ParserBase {
|
| ObjectLiteralCheckerBase* checker, bool in_class, bool has_extends,
|
| bool* is_computed_name, bool* has_seen_constructor, IdentifierT* name,
|
| bool* ok);
|
| - typename Types::ExpressionList ParseArguments(
|
| - Scanner::Location* first_spread_pos, bool maybe_arrow, bool* ok);
|
| - typename Types::ExpressionList ParseArguments(
|
| - Scanner::Location* first_spread_pos, bool* ok) {
|
| + ExpressionListT ParseArguments(Scanner::Location* first_spread_pos,
|
| + bool maybe_arrow, bool* ok);
|
| + ExpressionListT ParseArguments(Scanner::Location* first_spread_pos,
|
| + bool* ok) {
|
| return ParseArguments(first_spread_pos, false, ok);
|
| }
|
|
|
| @@ -1828,7 +1824,7 @@ typename ParserBase<Impl>::ExpressionT ParserBase<Impl>::ParseArrayLiteral(
|
| // '[' Expression? (',' Expression?)* ']'
|
|
|
| int pos = peek_position();
|
| - typename Types::ExpressionList values = impl()->NewExpressionList(4);
|
| + ExpressionListT values = impl()->NewExpressionList(4);
|
| int first_spread_index = -1;
|
| Expect(Token::LBRACK, CHECK_OK);
|
| while (peek() != Token::RBRACK) {
|
| @@ -2245,7 +2241,7 @@ ParserBase<Impl>::ParsePropertyDefinition(ObjectLiteralCheckerBase* checker,
|
| CHECK_OK_CUSTOM(EmptyObjectLiteralProperty));
|
| }
|
|
|
| - typename Types::FunctionLiteral value = impl()->ParseFunctionLiteral(
|
| + FunctionLiteralT value = impl()->ParseFunctionLiteral(
|
| *name, scanner()->location(), kSkipFunctionNameCheck,
|
| is_get ? FunctionKind::kGetterFunction
|
| : FunctionKind::kSetterFunction,
|
| @@ -2280,7 +2276,7 @@ typename ParserBase<Impl>::ExpressionT ParserBase<Impl>::ParseObjectLiteral(
|
| // '{' (PropertyDefinition (',' PropertyDefinition)* ','? )? '}'
|
|
|
| int pos = peek_position();
|
| - typename Types::PropertyList properties = impl()->NewPropertyList(4);
|
| + PropertyListT properties = impl()->NewPropertyList(4);
|
| int number_of_boilerplate_properties = 0;
|
| bool has_computed_names = false;
|
| ObjectLiteralChecker checker(this);
|
| @@ -2329,14 +2325,13 @@ typename ParserBase<Impl>::ExpressionT ParserBase<Impl>::ParseObjectLiteral(
|
| }
|
|
|
| template <typename Impl>
|
| -typename ParserBase<Impl>::Types::ExpressionList
|
| -ParserBase<Impl>::ParseArguments(Scanner::Location* first_spread_arg_loc,
|
| - bool maybe_arrow, bool* ok) {
|
| +typename ParserBase<Impl>::ExpressionListT ParserBase<Impl>::ParseArguments(
|
| + Scanner::Location* first_spread_arg_loc, bool maybe_arrow, bool* ok) {
|
| // Arguments ::
|
| // '(' (AssignmentExpression)*[','] ')'
|
|
|
| Scanner::Location spread_arg = Scanner::Location::invalid();
|
| - typename Types::ExpressionList result = impl()->NewExpressionList(4);
|
| + ExpressionListT result = impl()->NewExpressionList(4);
|
| Expect(Token::LPAREN, CHECK_OK_CUSTOM(NullExpressionList));
|
| bool done = (peek() == Token::RPAREN);
|
| bool was_unspread = false;
|
| @@ -2978,7 +2973,7 @@ ParserBase<Impl>::ParseLeftHandSideExpression(bool* ok) {
|
| }
|
| }
|
| Scanner::Location spread_pos;
|
| - typename Types::ExpressionList args;
|
| + ExpressionListT args;
|
| if (V8_UNLIKELY(is_async && impl()->IsIdentifier(result))) {
|
| ExpressionClassifier async_classifier(this);
|
| args = ParseArguments(&spread_pos, true, CHECK_OK);
|
| @@ -3111,8 +3106,7 @@ ParserBase<Impl>::ParseMemberWithNewPrefixesExpression(bool* is_async,
|
| if (peek() == Token::LPAREN) {
|
| // NewExpression with arguments.
|
| Scanner::Location spread_pos;
|
| - typename Types::ExpressionList args =
|
| - ParseArguments(&spread_pos, CHECK_OK);
|
| + ExpressionListT args = ParseArguments(&spread_pos, CHECK_OK);
|
|
|
| if (spread_pos.IsValid()) {
|
| args = impl()->PrepareSpreadArguments(args);
|
| @@ -3649,7 +3643,7 @@ ParserBase<Impl>::ParseArrowFunctionLiteral(
|
| return impl()->EmptyExpression();
|
| }
|
|
|
| - typename Types::StatementList body = impl()->NullStatementList();
|
| + StatementListT body = impl()->NullStatementList();
|
| int num_parameters = formal_parameters.scope->num_parameters();
|
| int materialized_literal_count = -1;
|
| int expected_property_count = -1;
|
|
|