Index: src/parsing/preparser.h |
diff --git a/src/parsing/preparser.h b/src/parsing/preparser.h |
index 77fe061f42a40798847e39f6f17fa80a49d5e9b7..e4888037871e27cf19b9c2f0094dc4efe0fe02ee 100644 |
--- a/src/parsing/preparser.h |
+++ b/src/parsing/preparser.h |
@@ -414,10 +414,11 @@ class PreParserList { |
// These functions make list->Add(some_expression) work (and do nothing). |
PreParserList() : length_(0), variables_(nullptr) {} |
PreParserList* operator->() { return this; } |
- void Add(T, Zone* zone); |
+ void Add(const T& element, Zone* zone); |
int length() const { return length_; } |
static PreParserList Null() { return PreParserList(-1); } |
bool IsNull() const { return length_ == -1; } |
+ void Set(int index, const T& element) {} |
private: |
explicit PreParserList(int n) : length_(n), variables_(nullptr) {} |
@@ -430,7 +431,7 @@ class PreParserList { |
template <> |
inline void PreParserList<PreParserExpression>::Add( |
- PreParserExpression expression, Zone* zone) { |
+ const PreParserExpression& expression, Zone* zone) { |
if (expression.variables_ != nullptr) { |
DCHECK(FLAG_lazy_inner_functions); |
DCHECK(zone != nullptr); |
@@ -445,7 +446,7 @@ inline void PreParserList<PreParserExpression>::Add( |
} |
template <typename T> |
-void PreParserList<T>::Add(T, Zone* zone) { |
+void PreParserList<T>::Add(const T& element, Zone* zone) { |
++length_; |
} |
@@ -939,11 +940,6 @@ class PreParser : public ParserBase<PreParser> { |
// By making the 'exception handling' explicit, we are forced to check |
// for failure at the call sites. |
- V8_INLINE PreParserStatementList ParseEagerFunctionBody( |
- PreParserIdentifier function_name, int pos, |
- const PreParserFormalParameters& parameters, FunctionKind kind, |
- FunctionLiteral::FunctionType function_type, bool* ok); |
- |
// Indicates that we won't switch from the preparser to the preparser; we'll |
// just stay where we are. |
bool AllowsLazyParsingWithoutUnresolvedVariables() const { return false; } |
@@ -1075,6 +1071,16 @@ class PreParser : public ParserBase<PreParser> { |
return PreParserStatement::Default(); |
} |
+ V8_INLINE void ParseAndRewriteGeneratorFunctionBody( |
+ int pos, FunctionKind kind, PreParserStatementList body, bool* ok) { |
+ ParseStatementList(body, Token::RBRACE, ok); |
+ } |
+ V8_INLINE void CreateFunctionNameAssignment( |
+ PreParserIdentifier function_name, int pos, |
+ FunctionLiteral::FunctionType function_type, |
+ DeclarationScope* function_scope, PreParserStatementList result, |
+ int index) {} |
+ |
V8_INLINE PreParserExpression RewriteDoExpression(PreParserStatement body, |
int pos, bool* ok) { |
return PreParserExpression::Default(); |
@@ -1328,6 +1334,23 @@ class PreParser : public ParserBase<PreParser> { |
return loop; |
} |
+ V8_INLINE PreParserStatement BuildParameterInitializationBlock( |
+ const PreParserFormalParameters& parameters, bool* ok) { |
+ return PreParserStatement::Default(); |
+ } |
+ |
+ V8_INLINE PreParserStatement |
+ BuildRejectPromiseOnException(PreParserStatement init_block) { |
+ return PreParserStatement::Default(); |
+ } |
+ |
+ V8_INLINE void InsertSloppyBlockFunctionVarBindings(DeclarationScope* scope) { |
+ scope->HoistSloppyBlockFunctions(nullptr); |
+ } |
+ |
+ V8_INLINE void InsertShadowingVarBindingInitializers( |
+ PreParserStatement block) {} |
+ |
V8_INLINE PreParserExpression |
NewThrowReferenceError(MessageTemplate::Template message, int pos) { |
return PreParserExpression::Default(); |
@@ -1623,29 +1646,6 @@ PreParserExpression PreParser::SpreadCallNew(PreParserExpression function, |
return factory()->NewCallNew(function, args, pos); |
} |
-PreParserStatementList PreParser::ParseEagerFunctionBody( |
- PreParserIdentifier function_name, int pos, |
- const PreParserFormalParameters& parameters, FunctionKind kind, |
- FunctionLiteral::FunctionType function_type, bool* ok) { |
- PreParserStatementList result; |
- |
- DeclarationScope* inner_scope = scope()->AsDeclarationScope(); |
- if (!parameters.is_simple) inner_scope = NewVarblockScope(); |
- |
- { |
- BlockState block_state(&scope_state_, inner_scope); |
- ParseStatementList(result, Token::RBRACE, ok); |
- if (!*ok) return PreParserStatementList(); |
- } |
- |
- Expect(Token::RBRACE, ok); |
- |
- if (is_sloppy(inner_scope->language_mode())) { |
- inner_scope->HoistSloppyBlockFunctions(nullptr); |
- } |
- return result; |
-} |
- |
PreParserExpression PreParser::CloseTemplateLiteral(TemplateLiteralState* state, |
int start, |
PreParserExpression tag) { |