| Index: src/regexp/regexp-ast.h
|
| diff --git a/src/regexp/regexp-ast.h b/src/regexp/regexp-ast.h
|
| index 014d29e7fd69fe3afa18f1b40bf766f29062bbd8..f87778596ad44dedb0280b6c84743f931cdce954 100644
|
| --- a/src/regexp/regexp-ast.h
|
| +++ b/src/regexp/regexp-ast.h
|
| @@ -5,7 +5,6 @@
|
| #ifndef V8_REGEXP_REGEXP_AST_H_
|
| #define V8_REGEXP_REGEXP_AST_H_
|
|
|
| -#include "src/objects.h"
|
| #include "src/utils.h"
|
| #include "src/zone.h"
|
|
|
| @@ -78,37 +77,33 @@
|
| CharacterRange() : from_(0), to_(0) {}
|
| // For compatibility with the CHECK_OK macro
|
| CharacterRange(void* null) { DCHECK_NULL(null); } // NOLINT
|
| - CharacterRange(uc32 from, uc32 to) : from_(from), to_(to) {}
|
| + CharacterRange(uc16 from, uc16 to) : from_(from), to_(to) {}
|
| static void AddClassEscape(uc16 type, ZoneList<CharacterRange>* ranges,
|
| Zone* zone);
|
| static Vector<const int> GetWordBounds();
|
| - static inline CharacterRange Singleton(uc32 value) {
|
| + static inline CharacterRange Singleton(uc16 value) {
|
| return CharacterRange(value, value);
|
| }
|
| - static inline CharacterRange Range(uc32 from, uc32 to) {
|
| + static inline CharacterRange Range(uc16 from, uc16 to) {
|
| DCHECK(from <= to);
|
| return CharacterRange(from, to);
|
| }
|
| static inline CharacterRange Everything() {
|
| - return CharacterRange(0, String::kMaxCodePoint);
|
| - }
|
| - static inline ZoneList<CharacterRange>* List(Zone* zone,
|
| - CharacterRange range) {
|
| - ZoneList<CharacterRange>* list =
|
| - new (zone) ZoneList<CharacterRange>(1, zone);
|
| - list->Add(range, zone);
|
| - return list;
|
| - }
|
| - bool Contains(uc32 i) { return from_ <= i && i <= to_; }
|
| - uc32 from() const { return from_; }
|
| - void set_from(uc32 value) { from_ = value; }
|
| - uc32 to() const { return to_; }
|
| - void set_to(uc32 value) { to_ = value; }
|
| + return CharacterRange(0, 0xFFFF);
|
| + }
|
| + bool Contains(uc16 i) { return from_ <= i && i <= to_; }
|
| + uc16 from() const { return from_; }
|
| + void set_from(uc16 value) { from_ = value; }
|
| + uc16 to() const { return to_; }
|
| + void set_to(uc16 value) { to_ = value; }
|
| bool is_valid() { return from_ <= to_; }
|
| bool IsEverything(uc16 max) { return from_ == 0 && to_ >= max; }
|
| bool IsSingleton() { return (from_ == to_); }
|
| void AddCaseEquivalents(Isolate* isolate, Zone* zone,
|
| ZoneList<CharacterRange>* ranges, bool is_one_byte);
|
| + static void Split(ZoneList<CharacterRange>* base, Vector<const int> overlay,
|
| + ZoneList<CharacterRange>** included,
|
| + ZoneList<CharacterRange>** excluded, Zone* zone);
|
| // Whether a range list is in canonical form: Ranges ordered by from value,
|
| // and ranges non-overlapping and non-adjacent.
|
| static bool IsCanonical(ZoneList<CharacterRange>* ranges);
|
| @@ -124,8 +119,8 @@
|
| static const int kPayloadMask = (1 << 24) - 1;
|
|
|
| private:
|
| - uc32 from_;
|
| - uc32 to_;
|
| + uc16 from_;
|
| + uc16 to_;
|
| };
|
|
|
|
|
| @@ -292,7 +287,6 @@
|
| RegExpCharacterClass* AsCharacterClass() override;
|
| bool IsCharacterClass() override;
|
| bool IsTextElement() override { return true; }
|
| - bool NeedsDesugaringForUnicode(Zone* zone);
|
| int min_match() override { return 1; }
|
| int max_match() override { return 1; }
|
| void AppendToText(RegExpText* text, Zone* zone) override;
|
| @@ -457,22 +451,6 @@
|
| int capture_from() { return capture_from_; }
|
| Type type() { return type_; }
|
|
|
| - class Builder {
|
| - public:
|
| - Builder(bool is_positive, RegExpNode* on_success,
|
| - int stack_pointer_register, int position_register,
|
| - int capture_register_count = 0, int capture_register_start = 0);
|
| - RegExpNode* on_match_success() { return on_match_success_; }
|
| - RegExpNode* ForMatch(RegExpNode* match);
|
| -
|
| - private:
|
| - bool is_positive_;
|
| - RegExpNode* on_match_success_;
|
| - RegExpNode* on_success_;
|
| - int stack_pointer_register_;
|
| - int position_register_;
|
| - };
|
| -
|
| private:
|
| RegExpTree* body_;
|
| bool is_positive_;
|
|
|