| Index: src/parsing/preparser.h
 | 
| diff --git a/src/parsing/preparser.h b/src/parsing/preparser.h
 | 
| index aa0fe207c9f10293d0b055beb93fbfb2567884c9..2e2e36d98f504a96fcc21273a4afa3507d6b63e0 100644
 | 
| --- a/src/parsing/preparser.h
 | 
| +++ b/src/parsing/preparser.h
 | 
| @@ -183,6 +183,12 @@ class PreParserExpression {
 | 
|          ExpressionTypeField::encode(kNoTemplateTagExpression));
 | 
|    }
 | 
|  
 | 
| +  static PreParserExpression Empty() {
 | 
| +    return PreParserExpression(TypeField::encode(kEmptyExpression));
 | 
| +  }
 | 
| +
 | 
| +  bool IsEmpty() const { return TypeField::decode(code_) == kEmptyExpression; }
 | 
| +
 | 
|    bool IsIdentifier() const {
 | 
|      return TypeField::decode(code_) == kIdentifierExpression;
 | 
|    }
 | 
| @@ -282,6 +288,7 @@ class PreParserExpression {
 | 
|   private:
 | 
|    enum Type {
 | 
|      kExpression,
 | 
| +    kEmptyExpression,
 | 
|      kIdentifierExpression,
 | 
|      kStringLiteralExpression,
 | 
|      kBinaryOperationExpression,
 | 
| @@ -1005,7 +1012,7 @@ class PreParserTraits {
 | 
|      return PreParserIdentifier::Default();
 | 
|    }
 | 
|    static PreParserExpression EmptyExpression() {
 | 
| -    return PreParserExpression::Default();
 | 
| +    return PreParserExpression::Empty();
 | 
|    }
 | 
|    static PreParserExpression EmptyLiteral() {
 | 
|      return PreParserExpression::Default();
 | 
| @@ -1059,6 +1066,9 @@ class PreParserTraits {
 | 
|    static typesystem::PreParserTypeMember EmptyTypeMember() {
 | 
|      return typesystem::PreParserTypeMember::Default(false, false);
 | 
|    }
 | 
| +  static bool IsEmptyExpression(const PreParserExpression& expression) {
 | 
| +    return expression.IsEmpty();
 | 
| +  }
 | 
|  
 | 
|    // Odd-ball literal creators.
 | 
|    static PreParserExpression GetLiteralTheHole(int position,
 | 
| 
 |