| Index: src/parsing/preparser.h
|
| diff --git a/src/parsing/preparser.h b/src/parsing/preparser.h
|
| index f67c3b9c3622e13140d5154a7535db7c7fb9b0b1..5941765b7f04c6f6f00f0bb085539e16c9cc496b 100644
|
| --- a/src/parsing/preparser.h
|
| +++ b/src/parsing/preparser.h
|
| @@ -606,8 +606,8 @@ class PreParserTraits {
|
| typedef PreParserExpression YieldExpression;
|
| typedef PreParserExpression FunctionLiteral;
|
| typedef PreParserExpression ClassLiteral;
|
| - typedef PreParserExpression ObjectLiteralProperty;
|
| typedef PreParserExpression Literal;
|
| + typedef PreParserExpression ObjectLiteralProperty;
|
| typedef PreParserExpressionList ExpressionList;
|
| typedef PreParserExpressionList PropertyList;
|
| typedef PreParserIdentifier FormalParameter;
|
| @@ -629,10 +629,6 @@ class PreParserTraits {
|
| return identifier.IsArguments();
|
| }
|
|
|
| - bool IsAwait(PreParserIdentifier identifier) const {
|
| - return identifier.IsAwait();
|
| - }
|
| -
|
| bool IsEvalOrArguments(PreParserIdentifier identifier) const {
|
| return identifier.IsEvalOrArguments();
|
| }
|
| @@ -641,12 +637,12 @@ class PreParserTraits {
|
| return identifier.IsUndefined();
|
| }
|
|
|
| - bool IsPrototype(PreParserIdentifier identifier) const {
|
| - return identifier.IsPrototype();
|
| + bool IsAwait(PreParserIdentifier identifier) const {
|
| + return identifier.IsAwait();
|
| }
|
|
|
| - bool IsConstructor(PreParserIdentifier identifier) const {
|
| - return identifier.IsConstructor();
|
| + bool IsFutureStrictReserved(PreParserIdentifier identifier) const {
|
| + return identifier.IsFutureStrictReserved();
|
| }
|
|
|
| // Returns true if the expression is of type "this.foo".
|
| @@ -662,12 +658,16 @@ class PreParserTraits {
|
| return expression.AsIdentifier();
|
| }
|
|
|
| - bool IsDirectEvalCall(PreParserExpression expression) const {
|
| - return expression.IsDirectEvalCall();
|
| + bool IsPrototype(PreParserIdentifier identifier) const {
|
| + return identifier.IsPrototype();
|
| }
|
|
|
| - bool IsFutureStrictReserved(PreParserIdentifier identifier) const {
|
| - return identifier.IsFutureStrictReserved();
|
| + bool IsConstructor(PreParserIdentifier identifier) const {
|
| + return identifier.IsConstructor();
|
| + }
|
| +
|
| + bool IsDirectEvalCall(PreParserExpression expression) const {
|
| + return expression.IsDirectEvalCall();
|
| }
|
|
|
| static bool IsBoilerplateProperty(PreParserExpression property) {
|
| @@ -761,9 +761,6 @@ class PreParserTraits {
|
| static PreParserIdentifier EmptyIdentifier() {
|
| return PreParserIdentifier::Default();
|
| }
|
| - static PreParserIdentifier EmptyIdentifierString() {
|
| - return PreParserIdentifier::Default();
|
| - }
|
| static PreParserExpression EmptyExpression() {
|
| return PreParserExpression::Default();
|
| }
|
| @@ -776,9 +773,13 @@ class PreParserTraits {
|
| static PreParserExpression EmptyFunctionLiteral() {
|
| return PreParserExpression::Default();
|
| }
|
| +
|
| static PreParserExpressionList NullExpressionList() {
|
| return PreParserExpressionList();
|
| }
|
| + static PreParserIdentifier EmptyIdentifierString() {
|
| + return PreParserIdentifier::Default();
|
| + }
|
|
|
| // Odd-ball literal creators.
|
| PreParserExpression GetLiteralTheHole(int position,
|
| @@ -788,11 +789,12 @@ class PreParserTraits {
|
|
|
| // Producing data during the recursive descent.
|
| PreParserIdentifier GetSymbol(Scanner* scanner);
|
| - PreParserIdentifier GetNumberAsSymbol(Scanner* scanner) {
|
| +
|
| + PreParserIdentifier GetNextSymbol(Scanner* scanner) const {
|
| return PreParserIdentifier::Default();
|
| }
|
|
|
| - PreParserIdentifier GetNextSymbol(Scanner* scanner) const {
|
| + PreParserIdentifier GetNumberAsSymbol(Scanner* scanner) {
|
| return PreParserIdentifier::Default();
|
| }
|
|
|
| @@ -843,58 +845,22 @@ class PreParserTraits {
|
| return PreParserExpressionList();
|
| }
|
|
|
| - PreParserStatementList NewStatementList(int size, Zone* zone) const {
|
| - return PreParserStatementList();
|
| - }
|
| -
|
| PreParserExpressionList NewPropertyList(int size, Zone* zone) const {
|
| return PreParserExpressionList();
|
| }
|
|
|
| + PreParserStatementList NewStatementList(int size, Zone* zone) const {
|
| + return PreParserStatementList();
|
| + }
|
| +
|
| void AddParameterInitializationBlock(
|
| const PreParserFormalParameters& parameters, PreParserStatementList list,
|
| bool is_async, bool* ok) const {}
|
|
|
| - V8_INLINE void SkipLazyFunctionBody(
|
| - int* materialized_literal_count, int* expected_property_count, bool* ok,
|
| - Scanner::BookmarkScope* bookmark = nullptr) {
|
| - UNREACHABLE();
|
| - }
|
| -
|
| - V8_INLINE PreParserStatementList ParseEagerFunctionBody(
|
| - PreParserIdentifier name, int pos,
|
| - const PreParserFormalParameters& parameters, FunctionKind kind,
|
| - FunctionLiteral::FunctionType function_type, bool* ok);
|
| -
|
| - V8_INLINE void ParseArrowFunctionFormalParameterList(
|
| - PreParserFormalParameters* parameters, PreParserExpression expression,
|
| - const Scanner::Location& params_loc, Scanner::Location* duplicate_loc,
|
| - const Scope::Snapshot& scope_snapshot, bool* ok);
|
| -
|
| void ParseAsyncArrowSingleExpressionBody(
|
| PreParserStatementList body, bool accept_IN,
|
| Type::ExpressionClassifier* classifier, int pos, bool* ok);
|
|
|
| - V8_INLINE PreParserExpression ParseAsyncFunctionExpression(bool* ok);
|
| -
|
| - void ReindexLiterals(const PreParserFormalParameters& parameters) {}
|
| -
|
| - struct TemplateLiteralState {};
|
| -
|
| - TemplateLiteralState OpenTemplateLiteral(int pos) {
|
| - return TemplateLiteralState();
|
| - }
|
| - void AddTemplateSpan(TemplateLiteralState* state, bool tail) {}
|
| - void AddTemplateExpression(TemplateLiteralState* state,
|
| - PreParserExpression expression) {}
|
| - V8_INLINE PreParserExpression CloseTemplateLiteral(
|
| - TemplateLiteralState* state, int start, PreParserExpression tag);
|
| - PreParserExpression NoTemplateTag() {
|
| - return PreParserExpression::NoTemplateTag();
|
| - }
|
| - static bool IsTaggedTemplate(const PreParserExpression tag) {
|
| - return !tag.IsNoTemplateTag();
|
| - }
|
|
|
| void AddFormalParameter(PreParserFormalParameters* parameters,
|
| PreParserExpression pattern,
|
| @@ -902,6 +868,7 @@ class PreParserTraits {
|
| int initializer_end_position, bool is_rest) {
|
| ++parameters->arity;
|
| }
|
| +
|
| void DeclareFormalParameter(DeclarationScope* scope,
|
| PreParserIdentifier parameter,
|
| Type::ExpressionClassifier* classifier) {
|
| @@ -910,17 +877,36 @@ class PreParserTraits {
|
| }
|
| }
|
|
|
| - void CheckConflictingVarDeclarations(Scope* scope, bool* ok) {}
|
| + V8_INLINE void ParseArrowFunctionFormalParameterList(
|
| + PreParserFormalParameters* parameters, PreParserExpression expression,
|
| + const Scanner::Location& params_loc, Scanner::Location* duplicate_loc,
|
| + const Scope::Snapshot& scope_snapshot, bool* ok);
|
| +
|
| + V8_INLINE PreParserExpression ParseAsyncFunctionExpression(bool* ok);
|
| +
|
| + V8_INLINE PreParserExpression ParseDoExpression(bool* ok);
|
| +
|
| + void ReindexLiterals(const PreParserFormalParameters& parameters) {}
|
|
|
| // Temporary glue; these functions will move to ParserBase.
|
| PreParserExpression ParseV8Intrinsic(bool* ok);
|
| - V8_INLINE PreParserExpression ParseDoExpression(bool* ok);
|
| PreParserExpression ParseFunctionLiteral(
|
| PreParserIdentifier name, Scanner::Location function_name_location,
|
| FunctionNameValidity function_name_validity, FunctionKind kind,
|
| int function_token_position, FunctionLiteral::FunctionType type,
|
| LanguageMode language_mode, bool* ok);
|
|
|
| + V8_INLINE void SkipLazyFunctionBody(
|
| + int* materialized_literal_count, int* expected_property_count, bool* ok,
|
| + Scanner::BookmarkScope* bookmark = nullptr) {
|
| + UNREACHABLE();
|
| + }
|
| +
|
| + V8_INLINE PreParserStatementList ParseEagerFunctionBody(
|
| + PreParserIdentifier name, int pos,
|
| + const PreParserFormalParameters& parameters, FunctionKind kind,
|
| + FunctionLiteral::FunctionType function_type, bool* ok);
|
| +
|
| PreParserExpression ParseClassLiteral(Type::ExpressionClassifier* classifier,
|
| PreParserIdentifier name,
|
| Scanner::Location class_name_location,
|
| @@ -930,7 +916,27 @@ class PreParserTraits {
|
| V8_INLINE void MarkCollectedTailCallExpressions() {}
|
| V8_INLINE void MarkTailPosition(PreParserExpression expression) {}
|
|
|
| - PreParserExpressionList PrepareSpreadArguments(PreParserExpressionList list) {
|
| + void CheckConflictingVarDeclarations(Scope* scope, bool* ok) {}
|
| +
|
| + struct TemplateLiteralState {};
|
| +
|
| + V8_INLINE TemplateLiteralState OpenTemplateLiteral(int pos) {
|
| + return TemplateLiteralState();
|
| + }
|
| + V8_INLINE void AddTemplateSpan(TemplateLiteralState* state, bool tail) {}
|
| + V8_INLINE void AddTemplateExpression(TemplateLiteralState* state,
|
| + PreParserExpression expression) {}
|
| + V8_INLINE PreParserExpression CloseTemplateLiteral(
|
| + TemplateLiteralState* state, int start, PreParserExpression tag);
|
| + V8_INLINE PreParserExpression NoTemplateTag() {
|
| + return PreParserExpression::NoTemplateTag();
|
| + }
|
| + V8_INLINE static bool IsTaggedTemplate(const PreParserExpression tag) {
|
| + return !tag.IsNoTemplateTag();
|
| + }
|
| +
|
| + V8_INLINE PreParserExpressionList
|
| + PrepareSpreadArguments(PreParserExpressionList list) {
|
| return list;
|
| }
|
|
|
| @@ -959,6 +965,8 @@ class PreParserTraits {
|
| PreParserExpression left, PreParserExpression right, int pos) {
|
| return left;
|
| }
|
| + inline PreParserExpression RewriteAwaitExpression(PreParserExpression value,
|
| + int pos);
|
|
|
| inline void QueueDestructuringAssignmentForRewriting(
|
| PreParserExpression assignment) {}
|
| @@ -972,9 +980,6 @@ class PreParserTraits {
|
| inline void RewriteNonPattern(Type::ExpressionClassifier* classifier,
|
| bool* ok);
|
|
|
| - inline PreParserExpression RewriteAwaitExpression(PreParserExpression value,
|
| - int pos);
|
| -
|
| V8_INLINE ZoneList<typename Type::ExpressionClassifier::Error>*
|
| GetReportedErrorList() const;
|
| V8_INLINE Zone* zone() const;
|
|
|