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

Unified Diff: src/parsing/parser.h

Issue 1841543003: [esnext] implement frontend changes for async/await proposal (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: rebase over generator change cl Created 4 years, 8 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 side-by-side diff with in-line comments
Download patch
Index: src/parsing/parser.h
diff --git a/src/parsing/parser.h b/src/parsing/parser.h
index 6285c0c6789d9d98c3b2c7f151c7b41e4b494922..bb38eb8f34d453e76238965cdaad0289376fcedd 100644
--- a/src/parsing/parser.h
+++ b/src/parsing/parser.h
@@ -355,6 +355,7 @@ class ParserTraits {
bool IsArguments(const AstRawString* identifier) const;
bool IsEvalOrArguments(const AstRawString* identifier) const;
bool IsUndefined(const AstRawString* identifier) const;
+ bool IsAwait(const AstRawString* identifier) const;
V8_INLINE bool IsFutureStrictReserved(const AstRawString* identifier) const;
// Returns true if the expression is of type "this.foo".
@@ -549,6 +550,8 @@ class ParserTraits {
const Scanner::Location& params_loc,
Scanner::Location* duplicate_loc, bool* ok);
+ V8_INLINE Expression* ParseAsyncFunctionExpression(bool* ok);
+
V8_INLINE DoExpression* ParseDoExpression(bool* ok);
void ReindexLiterals(const ParserFormalParameters& parameters);
@@ -628,6 +631,8 @@ class ParserTraits {
ZoneList<v8::internal::Expression*>* args,
int pos);
+ Expression* ExpressionListToExpression(ZoneList<Expression*>* args);
+
// Rewrite all DestructuringAssignments in the current FunctionState.
V8_INLINE void RewriteDestructuringAssignments();
@@ -636,6 +641,8 @@ class ParserTraits {
V8_INLINE Expression* RewriteAssignExponentiation(Expression* left,
Expression* right, int pos);
+ V8_INLINE Expression* RewriteAwaitExpression(Expression* value, int pos);
+
V8_INLINE void QueueDestructuringAssignmentForRewriting(
Expression* assignment);
V8_INLINE void QueueNonPatternForRewriting(Expression* expr);
@@ -762,6 +769,12 @@ class Parser : public ParserBase<ParserTraits> {
bool* ok);
Statement* ParseFunctionDeclaration(ZoneList<const AstRawString*>* names,
bool* ok);
+ Statement* ParseAsyncFunctionDeclaration(ZoneList<const AstRawString*>* names,
+ bool* ok);
+ Expression* ParseAsyncFunctionExpression(bool* ok);
+ Statement* ParseFunctionDeclarationInternal(
+ int pos, ParseFunctionFlags flags, ZoneList<const AstRawString*>* names,
+ bool* ok);
Statement* ParseFunctionDeclaration(int pos, bool is_generator,
ZoneList<const AstRawString*>* names,
bool* ok);
@@ -1244,6 +1257,9 @@ void ParserTraits::AddParameterInitializationBlock(
}
}
+Expression* ParserTraits::ParseAsyncFunctionExpression(bool* ok) {
+ return parser_->ParseAsyncFunctionExpression(ok);
+}
DoExpression* ParserTraits::ParseDoExpression(bool* ok) {
return parser_->ParseDoExpression(ok);

Powered by Google App Engine
This is Rietveld 408576698