summaryrefslogtreecommitdiff
path: root/deps/v8/src/regexp/regexp-ast.h
diff options
context:
space:
mode:
Diffstat (limited to 'deps/v8/src/regexp/regexp-ast.h')
-rw-r--r--deps/v8/src/regexp/regexp-ast.h12
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_;
};