diff options
Diffstat (limited to 'deps/v8/src/regexp/regexp-ast.h')
-rw-r--r-- | deps/v8/src/regexp/regexp-ast.h | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/deps/v8/src/regexp/regexp-ast.h b/deps/v8/src/regexp/regexp-ast.h index e60621f8b6..1a94832f71 100644 --- a/deps/v8/src/regexp/regexp-ast.h +++ b/deps/v8/src/regexp/regexp-ast.h @@ -306,11 +306,17 @@ class RegExpCharacterClass final : public RegExpTree { typedef base::Flags<Flag> CharacterClassFlags; RegExpCharacterClass( - ZoneList<CharacterRange>* ranges, JSRegExp::Flags flags, + Zone* zone, ZoneList<CharacterRange>* ranges, JSRegExp::Flags flags, CharacterClassFlags character_class_flags = CharacterClassFlags()) : set_(ranges), flags_(flags), - character_class_flags_(character_class_flags) {} + character_class_flags_(character_class_flags) { + // Convert the empty set of ranges to the negated Everything() range. + if (ranges->is_empty()) { + ranges->Add(CharacterRange::Everything(), zone); + character_class_flags_ ^= NEGATED; + } + } RegExpCharacterClass(uc16 type, JSRegExp::Flags flags) : set_(type), flags_(flags), @@ -352,7 +358,7 @@ class RegExpCharacterClass final : public RegExpTree { private: CharacterSet set_; const JSRegExp::Flags flags_; - const CharacterClassFlags character_class_flags_; + CharacterClassFlags character_class_flags_; }; |