Chromium Code Reviews| Index: src/parsing/preparser.h |
| diff --git a/src/parsing/preparser.h b/src/parsing/preparser.h |
| index 8fb4b0c4787e6d9401c27f18ed11b4627dcc78df..0b8bea228e64b150085bfbeb1516a80c73b28e42 100644 |
| --- a/src/parsing/preparser.h |
| +++ b/src/parsing/preparser.h |
| @@ -292,6 +292,7 @@ class PreParserExpression { |
| // More dummy implementations of things PreParser doesn't need to track: |
| void set_index(int index) {} // For YieldExpressions |
| void set_should_eager_compile() {} |
| + void set_should_be_used_once_hint() {} |
| int position() const { return kNoSourcePosition; } |
| void set_function_token_position(int position) {} |
| @@ -637,6 +638,7 @@ class PreParser : public ParserBase<PreParser> { |
| enum PreParseResult { |
| kPreParseStackOverflow, |
| + kPreParseAbort, |
| kPreParseSuccess |
| }; |
| @@ -693,8 +695,7 @@ class PreParser : public ParserBase<PreParser> { |
| FunctionKind kind, |
| bool has_simple_parameters, |
| bool parsing_module, ParserRecorder* log, |
| - Scanner::BookmarkScope* bookmark, |
| - int* use_counts); |
| + bool may_abort, int* use_counts); |
| // A dummy function, just useful as an argument to CHECK_OK_CUSTOM. |
| static void Void() {} |
| @@ -712,8 +713,10 @@ class PreParser : public ParserBase<PreParser> { |
| // By making the 'exception handling' explicit, we are forced to check |
| // for failure at the call sites. |
| Statement ParseStatementListItem(bool* ok); |
| - void ParseStatementList(int end_token, bool* ok, |
| - Scanner::BookmarkScope* bookmark = nullptr); |
| + V8_INLINE bool ParseStatementList(int end_token, bool* ok) { |
| + return ParseStatementList(end_token, false, ok); |
|
vogelheim
2016/08/30 16:28:42
If may_abort is set to false, ParseStatementList w
nickie
2016/08/31 13:23:36
Done.
|
| + } |
| + bool ParseStatementList(int end_token, bool may_abort, bool* ok); |
| Statement ParseStatement(AllowLabelledFunctionStatement allow_function, |
| bool* ok); |
| Statement ParseSubStatement(AllowLabelledFunctionStatement allow_function, |
| @@ -759,9 +762,9 @@ class PreParser : public ParserBase<PreParser> { |
| const PreParserFormalParameters& parameters, FunctionKind kind, |
| FunctionLiteral::FunctionType function_type, bool* ok); |
| - V8_INLINE void SkipLazyFunctionBody( |
| - int* materialized_literal_count, int* expected_property_count, bool* ok, |
| - Scanner::BookmarkScope* bookmark = nullptr) { |
| + V8_INLINE bool SkipLazyFunctionBody(int* materialized_literal_count, |
| + int* expected_property_count, |
| + bool may_abort, bool* ok) { |
| UNREACHABLE(); |
| } |
| Expression ParseFunctionLiteral( |
| @@ -769,8 +772,7 @@ class PreParser : public ParserBase<PreParser> { |
| FunctionNameValidity function_name_validity, FunctionKind kind, |
| int function_token_pos, FunctionLiteral::FunctionType function_type, |
| LanguageMode language_mode, bool* ok); |
| - void ParseLazyFunctionLiteralBody(bool* ok, |
| - Scanner::BookmarkScope* bookmark = nullptr); |
| + bool ParseLazyFunctionLiteralBody(bool may_abort, bool* ok); |
| PreParserExpression ParseClassLiteral(PreParserIdentifier name, |
| Scanner::Location class_name_location, |
| @@ -1000,6 +1002,9 @@ class PreParser : public ParserBase<PreParser> { |
| V8_INLINE static PreParserExpressionList NullExpressionList() { |
| return PreParserExpressionList(); |
| } |
| + V8_INLINE static PreParserStatementList NullStatementList() { |
| + return PreParserStatementList(); |
| + } |
| V8_INLINE PreParserIdentifier EmptyIdentifierString() const { |
| return PreParserIdentifier::Default(); |
| } |