| 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); | 
|  |