| Index: src/jsregexp.h
|
| diff --git a/src/jsregexp.h b/src/jsregexp.h
|
| index 4b84c9558d975b6ccc9b0bace627bbee791c5797..419fd7b8cc449e5f9c0269444ed92145ac4f61fc 100644
|
| --- a/src/jsregexp.h
|
| +++ b/src/jsregexp.h
|
| @@ -263,8 +263,8 @@ class CharacterRange {
|
| bool is_valid() { return from_ <= to_; }
|
| bool IsEverything(uc16 max) { return from_ == 0 && to_ >= max; }
|
| bool IsSingleton() { return (from_ == to_); }
|
| - void AddCaseEquivalents(ZoneList<CharacterRange>* ranges, bool is_one_byte,
|
| - Zone* zone);
|
| + 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,
|
| @@ -847,7 +847,7 @@ class TextNode: public SeqRegExpNode {
|
| int characters_filled_in,
|
| bool not_at_start);
|
| ZoneList<TextElement>* elements() { return elms_; }
|
| - void MakeCaseIndependent(bool is_one_byte);
|
| + void MakeCaseIndependent(Isolate* isolate, bool is_one_byte);
|
| virtual int GreedyLoopTextLength();
|
| virtual RegExpNode* GetSuccessorOfOmnivorousTextNode(
|
| RegExpCompiler* compiler);
|
| @@ -1598,8 +1598,9 @@ FOR_EACH_NODE_TYPE(DECLARE_VISIT)
|
| // +-------+ +------------+
|
| class Analysis: public NodeVisitor {
|
| public:
|
| - Analysis(bool ignore_case, bool is_one_byte)
|
| - : ignore_case_(ignore_case),
|
| + Analysis(Isolate* isolate, bool ignore_case, bool is_one_byte)
|
| + : isolate_(isolate),
|
| + ignore_case_(ignore_case),
|
| is_one_byte_(is_one_byte),
|
| error_message_(NULL) {}
|
| void EnsureAnalyzed(RegExpNode* node);
|
| @@ -1619,7 +1620,10 @@ FOR_EACH_NODE_TYPE(DECLARE_VISIT)
|
| error_message_ = error_message;
|
| }
|
|
|
| + Isolate* isolate() const { return isolate_; }
|
| +
|
| private:
|
| + Isolate* isolate_;
|
| bool ignore_case_;
|
| bool is_one_byte_;
|
| const char* error_message_;
|
| @@ -1652,19 +1656,18 @@ class RegExpEngine: public AllStatic {
|
| code(isolate->heap()->the_hole_value()),
|
| num_registers(0) {}
|
| CompilationResult(Object* code, int registers)
|
| - : error_message(NULL),
|
| - code(code),
|
| - num_registers(registers) {}
|
| + : error_message(NULL), code(code), num_registers(registers) {}
|
| const char* error_message;
|
| Object* code;
|
| int num_registers;
|
| };
|
|
|
| - static CompilationResult Compile(RegExpCompileData* input, bool ignore_case,
|
| + static CompilationResult Compile(Isolate* isolate, Zone* zone,
|
| + RegExpCompileData* input, bool ignore_case,
|
| bool global, bool multiline, bool sticky,
|
| Handle<String> pattern,
|
| Handle<String> sample_subject,
|
| - bool is_one_byte, Zone* zone);
|
| + bool is_one_byte);
|
|
|
| static bool TooMuchRegExpCode(Handle<String> pattern);
|
|
|
|
|