| Index: src/parser.h
 | 
| diff --git a/src/parser.h b/src/parser.h
 | 
| index 569236c593df736db2dc3786f327019b16fa4b80..7906563bd42191fbd9018996e397ba4e2c127db7 100644
 | 
| --- a/src/parser.h
 | 
| +++ b/src/parser.h
 | 
| @@ -796,6 +796,8 @@ class ParserTraits {
 | 
|        const Scanner::Location& params_loc,
 | 
|        Scanner::Location* duplicate_loc, bool* ok);
 | 
|  
 | 
| +  V8_INLINE DoExpression* ParseDoExpression(bool* ok);
 | 
| +
 | 
|    void ReindexLiterals(const ParserFormalParameters& parameters);
 | 
|  
 | 
|    // Temporary glue; these functions will move to ParserBase.
 | 
| @@ -971,6 +973,7 @@ class Parser : public ParserBase<ParserTraits> {
 | 
|    Block* ParseVariableStatement(VariableDeclarationContext var_context,
 | 
|                                  ZoneList<const AstRawString*>* names,
 | 
|                                  bool* ok);
 | 
| +  DoExpression* ParseDoExpression(bool* ok);
 | 
|  
 | 
|    struct DeclarationDescriptor {
 | 
|      enum Kind { NORMAL, PARAMETER };
 | 
| @@ -1104,6 +1107,8 @@ class Parser : public ParserBase<ParserTraits> {
 | 
|        ForStatement* loop, Statement* init, Expression* cond, Statement* next,
 | 
|        Statement* body, bool* ok);
 | 
|  
 | 
| +  void RewriteDoExpression(Expression* expr, bool* ok);
 | 
| +
 | 
|    FunctionLiteral* ParseFunctionLiteral(
 | 
|        const AstRawString* name, Scanner::Location function_name_location,
 | 
|        FunctionNameValidity function_name_validity, FunctionKind kind,
 | 
| @@ -1248,6 +1253,7 @@ ZoneList<Statement*>* ParserTraits::ParseEagerFunctionBody(
 | 
|                                           function_type, ok);
 | 
|  }
 | 
|  
 | 
| +
 | 
|  void ParserTraits::CheckConflictingVarDeclarations(v8::internal::Scope* scope,
 | 
|                                                     bool* ok) {
 | 
|    parser_->CheckConflictingVarDeclarations(scope, ok);
 | 
| @@ -1377,6 +1383,13 @@ void ParserTraits::AddParameterInitializationBlock(
 | 
|      }
 | 
|    }
 | 
|  }
 | 
| +
 | 
| +
 | 
| +DoExpression* ParserTraits::ParseDoExpression(bool* ok) {
 | 
| +  return parser_->ParseDoExpression(ok);
 | 
| +}
 | 
| +
 | 
| +
 | 
|  }  // namespace internal
 | 
|  }  // namespace v8
 | 
|  
 | 
| 
 |