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, |