| Index: src/parser.h
 | 
| diff --git a/src/parser.h b/src/parser.h
 | 
| index b5bf2391284cb475944190a4a97defc6d2ad1258..ab9c61a91daaefc55aec14d9811dac57f46f5ac7 100644
 | 
| --- a/src/parser.h
 | 
| +++ b/src/parser.h
 | 
| @@ -363,6 +363,7 @@ class ParserTraits {
 | 
|      typedef v8::internal::Expression* Expression;
 | 
|      typedef Yield* YieldExpression;
 | 
|      typedef v8::internal::FunctionLiteral* FunctionLiteral;
 | 
| +    typedef v8::internal::ClassLiteral* ClassLiteral;
 | 
|      typedef v8::internal::Literal* Literal;
 | 
|      typedef ObjectLiteral::Property* ObjectLiteralProperty;
 | 
|      typedef ZoneList<v8::internal::Expression*>* ExpressionList;
 | 
| @@ -401,6 +402,10 @@ class ParserTraits {
 | 
|  
 | 
|    static bool IsIdentifier(Expression* expression);
 | 
|  
 | 
| +  bool IsPrototype(const AstRawString* identifier) const;
 | 
| +
 | 
| +  bool IsConstructor(const AstRawString* identifier) const;
 | 
| +
 | 
|    static const AstRawString* AsIdentifier(Expression* expression) {
 | 
|      DCHECK(IsIdentifier(expression));
 | 
|      return expression->AsVariableProxy()->raw_name();
 | 
| @@ -518,6 +523,8 @@ class ParserTraits {
 | 
|      return NULL;
 | 
|    }
 | 
|    static ObjectLiteralProperty* EmptyObjectLiteralProperty() { return NULL; }
 | 
| +  static FunctionLiteral* EmptyFunctionLiteral() { return NULL; }
 | 
| +  static ClassLiteral* EmptyClassLiteral() { return NULL; }
 | 
|  
 | 
|    // Used in error return values.
 | 
|    static ZoneList<Expression*>* NullExpressionList() {
 | 
| @@ -705,6 +712,8 @@ class Parser : public ParserBase<ParserTraits> {
 | 
|    Statement* ParseStatement(ZoneList<const AstRawString*>* labels, bool* ok);
 | 
|    Statement* ParseFunctionDeclaration(ZoneList<const AstRawString*>* names,
 | 
|                                        bool* ok);
 | 
| +  Statement* ParseClassDeclaration(ZoneList<const AstRawString*>* names,
 | 
| +                                   bool* ok);
 | 
|    Statement* ParseNativeDeclaration(bool* ok);
 | 
|    Block* ParseBlock(ZoneList<const AstRawString*>* labels, bool* ok);
 | 
|    Block* ParseVariableStatement(VariableDeclarationContext var_context,
 | 
| 
 |