| Index: src/parsing/preparser.h
|
| diff --git a/src/parsing/preparser.h b/src/parsing/preparser.h
|
| index 197c65a73209cf33c60f9fa02878a40893927567..ce94def6e7dbfc96a367c522215ea5449cd11795 100644
|
| --- a/src/parsing/preparser.h
|
| +++ b/src/parsing/preparser.h
|
| @@ -68,6 +68,9 @@ class PreParserIdentifier {
|
| static PreParserIdentifier Async() {
|
| return PreParserIdentifier(kAsyncIdentifier);
|
| }
|
| + static PreParserIdentifier Name() {
|
| + return PreParserIdentifier(kNameIdentifier);
|
| + }
|
| bool IsEmpty() const { return type_ == kEmptyIdentifier; }
|
| bool IsEval() const { return type_ == kEvalIdentifier; }
|
| bool IsArguments() const { return type_ == kArgumentsIdentifier; }
|
| @@ -80,6 +83,7 @@ class PreParserIdentifier {
|
| bool IsConstructor() const { return type_ == kConstructorIdentifier; }
|
| bool IsEnum() const { return type_ == kEnumIdentifier; }
|
| bool IsAwait() const { return type_ == kAwaitIdentifier; }
|
| + bool IsName() const { return type_ == kNameIdentifier; }
|
|
|
| // Allow identifier->name()[->length()] to work. The preparser
|
| // does not need the actual positions/lengths of the identifiers.
|
| @@ -105,7 +109,8 @@ class PreParserIdentifier {
|
| kConstructorIdentifier,
|
| kEnumIdentifier,
|
| kAwaitIdentifier,
|
| - kAsyncIdentifier
|
| + kAsyncIdentifier,
|
| + kNameIdentifier
|
| };
|
|
|
| explicit PreParserIdentifier(Type type) : type_(type), string_(nullptr) {}
|
| @@ -1142,6 +1147,10 @@ class PreParser : public ParserBase<PreParser> {
|
| return identifier.IsConstructor();
|
| }
|
|
|
| + V8_INLINE bool IsName(PreParserIdentifier identifier) const {
|
| + return identifier.IsName();
|
| + }
|
| +
|
| V8_INLINE static bool IsBoilerplateProperty(PreParserExpression property) {
|
| // PreParser doesn't count boilerplate properties.
|
| return false;
|
|
|