Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(236)

Side by Side Diff: src/parsing/parser.h

Issue 2297733002: [parser] Refactor bookmark in SkipLazyFunctionBody (Closed)
Patch Set: Fix error with UNREACHABLE Created 4 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | src/parsing/parser.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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_PARSING_PARSER_H_ 5 #ifndef V8_PARSING_PARSER_H_
6 #define V8_PARSING_PARSER_H_ 6 #define V8_PARSING_PARSER_H_
7 7
8 #include "src/ast/ast.h" 8 #include "src/ast/ast.h"
9 #include "src/ast/scopes.h" 9 #include "src/ast/scopes.h"
10 #include "src/parsing/parser-base.h" 10 #include "src/parsing/parser-base.h"
(...skipping 492 matching lines...) Expand 10 before | Expand all | Expand 10 after
503 503
504 Statement* BuildAssertIsCoercible(Variable* var); 504 Statement* BuildAssertIsCoercible(Variable* var);
505 505
506 // Factory methods. 506 // Factory methods.
507 FunctionLiteral* DefaultConstructor(const AstRawString* name, bool call_super, 507 FunctionLiteral* DefaultConstructor(const AstRawString* name, bool call_super,
508 int pos, int end_pos, 508 int pos, int end_pos,
509 LanguageMode language_mode); 509 LanguageMode language_mode);
510 510
511 // Skip over a lazy function, either using cached data if we have it, or 511 // Skip over a lazy function, either using cached data if we have it, or
512 // by parsing the function with PreParser. Consumes the ending }. 512 // by parsing the function with PreParser. Consumes the ending }.
513 // 513 // If may_abort == true, the (pre-)parser may decide to abort skipping
514 // If bookmark is set, the (pre-)parser may decide to abort skipping
515 // in order to force the function to be eagerly parsed, after all. 514 // in order to force the function to be eagerly parsed, after all.
516 // In this case, it'll reset the scanner using the bookmark. 515 LazyParsingResult SkipLazyFunctionBody(int* materialized_literal_count,
517 void SkipLazyFunctionBody(int* materialized_literal_count, 516 int* expected_property_count,
518 int* expected_property_count, bool* ok, 517 bool may_abort, bool* ok);
519 Scanner::BookmarkScope* bookmark = nullptr);
520 518
521 PreParser::PreParseResult ParseLazyFunctionBodyWithPreParser( 519 PreParser::PreParseResult ParseLazyFunctionBodyWithPreParser(
522 SingletonLogger* logger, Scanner::BookmarkScope* bookmark = nullptr); 520 SingletonLogger* logger, bool may_abort);
523 521
524 Block* BuildParameterInitializationBlock( 522 Block* BuildParameterInitializationBlock(
525 const ParserFormalParameters& parameters, bool* ok); 523 const ParserFormalParameters& parameters, bool* ok);
526 Block* BuildRejectPromiseOnException(Block* block, bool* ok); 524 Block* BuildRejectPromiseOnException(Block* block, bool* ok);
527 525
528 // Consumes the ending }. 526 // Consumes the ending }.
529 ZoneList<Statement*>* ParseEagerFunctionBody( 527 ZoneList<Statement*>* ParseEagerFunctionBody(
530 const AstRawString* function_name, int pos, 528 const AstRawString* function_name, int pos,
531 const ParserFormalParameters& parameters, FunctionKind kind, 529 const ParserFormalParameters& parameters, FunctionKind kind,
532 FunctionLiteral::FunctionType function_type, bool* ok); 530 FunctionLiteral::FunctionType function_type, bool* ok);
(...skipping 309 matching lines...) Expand 10 before | Expand all | Expand 10 after
842 V8_INLINE static FunctionLiteral* EmptyFunctionLiteral() { return nullptr; } 840 V8_INLINE static FunctionLiteral* EmptyFunctionLiteral() { return nullptr; }
843 841
844 V8_INLINE static bool IsEmptyExpression(Expression* expr) { 842 V8_INLINE static bool IsEmptyExpression(Expression* expr) {
845 return expr == nullptr; 843 return expr == nullptr;
846 } 844 }
847 845
848 // Used in error return values. 846 // Used in error return values.
849 V8_INLINE static ZoneList<Expression*>* NullExpressionList() { 847 V8_INLINE static ZoneList<Expression*>* NullExpressionList() {
850 return nullptr; 848 return nullptr;
851 } 849 }
850 V8_INLINE static ZoneList<Statement*>* NullStatementList() { return nullptr; }
852 851
853 // Non-NULL empty string. 852 // Non-NULL empty string.
854 V8_INLINE const AstRawString* EmptyIdentifierString() const { 853 V8_INLINE const AstRawString* EmptyIdentifierString() const {
855 return ast_value_factory()->empty_string(); 854 return ast_value_factory()->empty_string();
856 } 855 }
857 856
858 // Odd-ball literal creators. 857 // Odd-ball literal creators.
859 V8_INLINE Literal* GetLiteralTheHole(int position) { 858 V8_INLINE Literal* GetLiteralTheHole(int position) {
860 return factory()->NewTheHoleLiteral(kNoSourcePosition); 859 return factory()->NewTheHoleLiteral(kNoSourcePosition);
861 } 860 }
(...skipping 188 matching lines...) Expand 10 before | Expand all | Expand 10 after
1050 static const int kLiteralTypeSlot = 0; 1049 static const int kLiteralTypeSlot = 0;
1051 static const int kElementsSlot = 1; 1050 static const int kElementsSlot = 1;
1052 1051
1053 DISALLOW_IMPLICIT_CONSTRUCTORS(CompileTimeValue); 1052 DISALLOW_IMPLICIT_CONSTRUCTORS(CompileTimeValue);
1054 }; 1053 };
1055 1054
1056 } // namespace internal 1055 } // namespace internal
1057 } // namespace v8 1056 } // namespace v8
1058 1057
1059 #endif // V8_PARSING_PARSER_H_ 1058 #endif // V8_PARSING_PARSER_H_
OLDNEW
« no previous file with comments | « no previous file | src/parsing/parser.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698