| Index: src/parsing/parser.cc
|
| diff --git a/src/parsing/parser.cc b/src/parsing/parser.cc
|
| index cabe70cfa864241a43027ead7792e5d97b6dc771..d2168b406cdd6dc3698f549bc866fcd5d09d2d49 100644
|
| --- a/src/parsing/parser.cc
|
| +++ b/src/parsing/parser.cc
|
| @@ -678,36 +678,10 @@ Literal* ParserBaseTraits<Parser>::GetLiteralTheHole(
|
| return factory->NewTheHoleLiteral(kNoSourcePosition);
|
| }
|
|
|
| -Expression* ParserBaseTraits<Parser>::ParseV8Intrinsic(bool* ok) {
|
| - return delegate()->ParseV8Intrinsic(ok);
|
| -}
|
| -
|
| -FunctionLiteral* ParserBaseTraits<Parser>::ParseFunctionLiteral(
|
| - const AstRawString* name, Scanner::Location function_name_location,
|
| - FunctionNameValidity function_name_validity, FunctionKind kind,
|
| - int function_token_position, FunctionLiteral::FunctionType type,
|
| - LanguageMode language_mode, bool* ok) {
|
| - return delegate()->ParseFunctionLiteral(
|
| - name, function_name_location, function_name_validity, kind,
|
| - function_token_position, type, language_mode, ok);
|
| -}
|
| -
|
| -Expression* ParserBaseTraits<Parser>::ParseClassLiteral(
|
| - Type::ExpressionClassifier* classifier, const AstRawString* name,
|
| - Scanner::Location class_name_location, bool name_is_strict_reserved,
|
| - int pos, bool* ok) {
|
| - return delegate()->ParseClassLiteral(classifier, name, class_name_location,
|
| - name_is_strict_reserved, pos, ok);
|
| -}
|
| -
|
| -void ParserBaseTraits<Parser>::MarkTailPosition(Expression* expression) {
|
| +void Parser::MarkTailPosition(Expression* expression) {
|
| expression->MarkTail();
|
| }
|
|
|
| -void ParserBaseTraits<Parser>::MarkCollectedTailCallExpressions() {
|
| - delegate()->MarkCollectedTailCallExpressions();
|
| -}
|
| -
|
| Parser::Parser(ParseInfo* info)
|
| : ParserBase<Parser>(info->zone(), &scanner_, info->stack_limit(),
|
| info->extension(), info->ast_value_factory(), NULL),
|
| @@ -940,7 +914,7 @@ FunctionLiteral* Parser::DoParseProgram(ParseInfo* info) {
|
| }
|
|
|
| if (ok) {
|
| - ParserBaseTraits<Parser>::RewriteDestructuringAssignments();
|
| + RewriteDestructuringAssignments();
|
| result = factory()->NewScriptOrEvalFunctionLiteral(
|
| scope, body, function_state.materialized_literal_count(),
|
| function_state.expected_property_count());
|
| @@ -3984,15 +3958,6 @@ void Parser::ParseArrowFunctionFormalParameters(
|
| AddFormalParameter(parameters, expr, initializer, end_pos, is_rest);
|
| }
|
|
|
| -void ParserBaseTraits<Parser>::ParseAsyncArrowSingleExpressionBody(
|
| - ZoneList<Statement*>* body, bool accept_IN,
|
| - Type::ExpressionClassifier* classifier, int pos, bool* ok) {
|
| - delegate()->DesugarAsyncFunctionBody(
|
| - delegate()->ast_value_factory()->empty_string(), delegate()->scope(),
|
| - body, classifier, kAsyncArrowFunction,
|
| - Parser::FunctionBodyType::kSingleExpression, accept_IN, pos, ok);
|
| -}
|
| -
|
| void Parser::DesugarAsyncFunctionBody(const AstRawString* function_name,
|
| Scope* scope, ZoneList<Statement*>* body,
|
| ExpressionClassifier* classifier,
|
| @@ -4030,7 +3995,7 @@ void Parser::DesugarAsyncFunctionBody(const AstRawString* function_name,
|
| } else {
|
| return_value =
|
| ParseAssignmentExpression(accept_IN, classifier, CHECK_OK_VOID);
|
| - ParserBaseTraits<Parser>::RewriteNonPattern(classifier, CHECK_OK_VOID);
|
| + RewriteNonPattern(classifier, CHECK_OK_VOID);
|
| }
|
|
|
| return_value = BuildPromiseResolve(return_value, return_value->position());
|
| @@ -4334,7 +4299,7 @@ FunctionLiteral* Parser::ParseFunctionLiteral(
|
|
|
| if (body) {
|
| // If body can be inspected, rewrite queued destructuring assignments
|
| - ParserBaseTraits<Parser>::RewriteDestructuringAssignments();
|
| + RewriteDestructuringAssignments();
|
| }
|
| has_duplicate_parameters =
|
| !formals_classifier.is_valid_formal_parameter_list_without_duplicates();
|
| @@ -5356,9 +5321,8 @@ void Parser::ParseOnBackground(ParseInfo* info) {
|
| }
|
| }
|
|
|
| -ParserBaseTraits<Parser>::TemplateLiteralState Parser::OpenTemplateLiteral(
|
| - int pos) {
|
| - return new (zone()) ParserBaseTraits<Parser>::TemplateLiteral(zone(), pos);
|
| +Parser::TemplateLiteralState Parser::OpenTemplateLiteral(int pos) {
|
| + return new (zone()) TemplateLiteral(zone(), pos);
|
| }
|
|
|
|
|
| @@ -5634,28 +5598,7 @@ Expression* ParserBaseTraits<Parser>::ExpressionListToExpression(
|
| return expr;
|
| }
|
|
|
| -void ParserBaseTraits<Parser>::RewriteDestructuringAssignments() {
|
| - delegate()->RewriteDestructuringAssignments();
|
| -}
|
| -
|
| -Expression* ParserBaseTraits<Parser>::RewriteExponentiation(Expression* left,
|
| - Expression* right,
|
| - int pos) {
|
| - return delegate()->RewriteExponentiation(left, right, pos);
|
| -}
|
| -
|
| -Expression* ParserBaseTraits<Parser>::RewriteAssignExponentiation(
|
| - Expression* left, Expression* right, int pos) {
|
| - return delegate()->RewriteAssignExponentiation(left, right, pos);
|
| -}
|
| -
|
| -void ParserBaseTraits<Parser>::RewriteNonPattern(
|
| - Type::ExpressionClassifier* classifier, bool* ok) {
|
| - delegate()->RewriteNonPattern(classifier, ok);
|
| -}
|
| -
|
| -Expression* ParserBaseTraits<Parser>::RewriteAwaitExpression(Expression* value,
|
| - int await_pos) {
|
| +Expression* Parser::RewriteAwaitExpression(Expression* value, int await_pos) {
|
| // yield %AsyncFunctionAwait(.generator_object, <operand>)
|
| Variable* generator_object_variable =
|
| delegate()->function_state_->generator_object_variable();
|
| @@ -5907,17 +5850,15 @@ Expression* Parser::RewriteSpreads(ArrayLiteral* lit) {
|
| return factory()->NewDoExpression(do_block, result, lit->position());
|
| }
|
|
|
| -void ParserBaseTraits<Parser>::QueueDestructuringAssignmentForRewriting(
|
| - Expression* expr) {
|
| +void Parser::QueueDestructuringAssignmentForRewriting(Expression* expr) {
|
| DCHECK(expr->IsRewritableExpression());
|
| - delegate()->function_state_->AddDestructuringAssignment(
|
| - Parser::DestructuringAssignment(expr, delegate()->scope()));
|
| + function_state_->AddDestructuringAssignment(
|
| + DestructuringAssignment(expr, delegate()->scope()));
|
| }
|
|
|
| -void ParserBaseTraits<Parser>::QueueNonPatternForRewriting(Expression* expr,
|
| - bool* ok) {
|
| +void Parser::QueueNonPatternForRewriting(Expression* expr, bool* ok) {
|
| DCHECK(expr->IsRewritableExpression());
|
| - delegate()->function_state_->AddNonPatternForRewriting(expr, ok);
|
| + function_state_->AddNonPatternForRewriting(expr, ok);
|
| }
|
|
|
| void ParserBaseTraits<Parser>::SetFunctionNameFromPropertyName(
|
|
|