| Index: runtime/vm/regexp.h
 | 
| ===================================================================
 | 
| --- runtime/vm/regexp.h	(revision 44266)
 | 
| +++ runtime/vm/regexp.h	(working copy)
 | 
| @@ -51,12 +51,12 @@
 | 
|    bool IsSingleton() const { return (from_ == to_); }
 | 
|    void AddCaseEquivalents(ZoneGrowableArray<CharacterRange>* ranges,
 | 
|                            bool is_one_byte,
 | 
| -                          Isolate* isolate);
 | 
| +                          Zone* zone);
 | 
|    static void Split(ZoneGrowableArray<CharacterRange>* base,
 | 
|                      GrowableArray<const intptr_t> overlay,
 | 
|                      ZoneGrowableArray<CharacterRange>** included,
 | 
|                      ZoneGrowableArray<CharacterRange>** excluded,
 | 
| -                    Isolate* isolate);
 | 
| +                    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(ZoneGrowableArray<CharacterRange>* ranges);
 | 
| @@ -84,7 +84,7 @@
 | 
|  class OutSet: public ZoneAllocated {
 | 
|   public:
 | 
|    OutSet() : first_(0), remaining_(NULL), successors_(NULL) { }
 | 
| -  OutSet* Extend(unsigned value, Isolate* isolate);
 | 
| +  OutSet* Extend(unsigned value, Zone* zone);
 | 
|    bool Get(unsigned value) const;
 | 
|    static const unsigned kFirstLimit = 32;
 | 
|  
 | 
| @@ -92,7 +92,7 @@
 | 
|    // Destructively set a value in this set.  In most cases you want
 | 
|    // to use Extend instead to ensure that only one instance exists
 | 
|    // that contains the same values.
 | 
| -  void Set(unsigned value, Isolate* isolate);
 | 
| +  void Set(unsigned value, Zone* zone);
 | 
|  
 | 
|    // The successors are a list of sets that contain the same values
 | 
|    // as this set and the one more value that is not present in this
 | 
| @@ -300,8 +300,8 @@
 | 
|  
 | 
|  class RegExpNode: public ZoneAllocated {
 | 
|   public:
 | 
| -  explicit RegExpNode(Isolate* isolate)
 | 
| -  : replacement_(NULL), trace_count_(0), isolate_(isolate) {
 | 
| +  explicit RegExpNode(Zone* zone)
 | 
| +  : replacement_(NULL), trace_count_(0), zone_(zone) {
 | 
|      bm_info_[0] = bm_info_[1] = NULL;
 | 
|    }
 | 
|    virtual ~RegExpNode();
 | 
| @@ -398,7 +398,7 @@
 | 
|      return bm_info_[not_at_start ? 1 : 0];
 | 
|    }
 | 
|  
 | 
| -  Isolate* isolate() const { return isolate_; }
 | 
| +  Zone* zone() const { return zone_; }
 | 
|  
 | 
|   protected:
 | 
|    enum LimitResult { DONE, CONTINUE };
 | 
| @@ -421,7 +421,7 @@
 | 
|    // deferred operations in the current trace and generating a goto.
 | 
|    intptr_t trace_count_;
 | 
|    BoyerMooreLookahead* bm_info_[2];
 | 
| -  Isolate* isolate_;
 | 
| +  Zone* zone_;
 | 
|  };
 | 
|  
 | 
|  
 | 
| @@ -460,7 +460,7 @@
 | 
|  class SeqRegExpNode: public RegExpNode {
 | 
|   public:
 | 
|    explicit SeqRegExpNode(RegExpNode* on_success)
 | 
| -      : RegExpNode(on_success->isolate()), on_success_(on_success) { }
 | 
| +      : RegExpNode(on_success->zone()), on_success_(on_success) { }
 | 
|    RegExpNode* on_success() { return on_success_; }
 | 
|    void set_on_success(RegExpNode* node) { on_success_ = node; }
 | 
|    virtual RegExpNode* FilterOneByte(intptr_t depth, bool ignore_case);
 | 
| @@ -577,7 +577,7 @@
 | 
|    TextNode(RegExpCharacterClass* that,
 | 
|             RegExpNode* on_success)
 | 
|        : SeqRegExpNode(on_success),
 | 
| -        elms_(new(isolate()) ZoneGrowableArray<TextElement>(1)) {
 | 
| +        elms_(new(zone()) ZoneGrowableArray<TextElement>(1)) {
 | 
|      elms_->Add(TextElement::CharClass(that));
 | 
|    }
 | 
|    virtual void Accept(NodeVisitor* visitor);
 | 
| @@ -632,20 +632,20 @@
 | 
|      AFTER_NEWLINE
 | 
|    };
 | 
|    static AssertionNode* AtEnd(RegExpNode* on_success) {
 | 
| -    return new(on_success->isolate()) AssertionNode(AT_END, on_success);
 | 
| +    return new(on_success->zone()) AssertionNode(AT_END, on_success);
 | 
|    }
 | 
|    static AssertionNode* AtStart(RegExpNode* on_success) {
 | 
| -    return new(on_success->isolate()) AssertionNode(AT_START, on_success);
 | 
| +    return new(on_success->zone()) AssertionNode(AT_START, on_success);
 | 
|    }
 | 
|    static AssertionNode* AtBoundary(RegExpNode* on_success) {
 | 
| -    return new(on_success->isolate()) AssertionNode(AT_BOUNDARY, on_success);
 | 
| +    return new(on_success->zone()) AssertionNode(AT_BOUNDARY, on_success);
 | 
|    }
 | 
|    static AssertionNode* AtNonBoundary(RegExpNode* on_success) {
 | 
| -    return new(on_success->isolate()) AssertionNode(AT_NON_BOUNDARY,
 | 
| +    return new(on_success->zone()) AssertionNode(AT_NON_BOUNDARY,
 | 
|                                                      on_success);
 | 
|    }
 | 
|    static AssertionNode* AfterNewline(RegExpNode* on_success) {
 | 
| -    return new(on_success->isolate()) AssertionNode(AFTER_NEWLINE, on_success);
 | 
| +    return new(on_success->zone()) AssertionNode(AFTER_NEWLINE, on_success);
 | 
|    }
 | 
|    virtual void Accept(NodeVisitor* visitor);
 | 
|    virtual void Emit(RegExpCompiler* compiler, Trace* trace);
 | 
| @@ -708,8 +708,8 @@
 | 
|  class EndNode: public RegExpNode {
 | 
|   public:
 | 
|    enum Action { ACCEPT, BACKTRACK, NEGATIVE_SUBMATCH_SUCCESS };
 | 
| -  explicit EndNode(Action action, Isolate* isolate)
 | 
| -      : RegExpNode(isolate), action_(action) { }
 | 
| +  explicit EndNode(Action action, Zone* zone)
 | 
| +      : RegExpNode(zone), action_(action) { }
 | 
|    virtual void Accept(NodeVisitor* visitor);
 | 
|    virtual void Emit(RegExpCompiler* compiler, Trace* trace);
 | 
|    virtual intptr_t EatsAtLeast(intptr_t still_to_find,
 | 
| @@ -741,8 +741,8 @@
 | 
|                            intptr_t position_reg,
 | 
|                            intptr_t clear_capture_count,
 | 
|                            intptr_t clear_capture_start,
 | 
| -                          Isolate* isolate)
 | 
| -      : EndNode(NEGATIVE_SUBMATCH_SUCCESS, isolate),
 | 
| +                          Zone* zone)
 | 
| +      : EndNode(NEGATIVE_SUBMATCH_SUCCESS, zone),
 | 
|          stack_pointer_register_(stack_pointer_reg),
 | 
|          current_position_register_(position_reg),
 | 
|          clear_capture_count_(clear_capture_count),
 | 
| @@ -778,7 +778,7 @@
 | 
|  class GuardedAlternative {
 | 
|   public:
 | 
|    explicit GuardedAlternative(RegExpNode* node) : node_(node), guards_(NULL) { }
 | 
| -  void AddGuard(Guard* guard, Isolate* isolate);
 | 
| +  void AddGuard(Guard* guard, Zone* zone);
 | 
|    RegExpNode* node() { return node_; }
 | 
|    void set_node(RegExpNode* node) { node_ = node; }
 | 
|    ZoneGrowableArray<Guard*>* guards() { return guards_; }
 | 
| @@ -796,9 +796,9 @@
 | 
|  
 | 
|  class ChoiceNode: public RegExpNode {
 | 
|   public:
 | 
| -  explicit ChoiceNode(intptr_t expected_size, Isolate* isolate)
 | 
| -      : RegExpNode(isolate),
 | 
| -        alternatives_(new(isolate)
 | 
| +  explicit ChoiceNode(intptr_t expected_size, Zone* zone)
 | 
| +      : RegExpNode(zone),
 | 
| +        alternatives_(new(zone)
 | 
|                        ZoneGrowableArray<GuardedAlternative>(expected_size)),
 | 
|          not_at_start_(false),
 | 
|          being_calculated_(false) { }
 | 
| @@ -879,8 +879,8 @@
 | 
|   public:
 | 
|    explicit NegativeLookaheadChoiceNode(GuardedAlternative this_must_fail,
 | 
|                                         GuardedAlternative then_do_this,
 | 
| -                                       Isolate* isolate)
 | 
| -      : ChoiceNode(2, isolate) {
 | 
| +                                       Zone* zone)
 | 
| +      : ChoiceNode(2, zone) {
 | 
|      AddAlternative(this_must_fail);
 | 
|      AddAlternative(then_do_this);
 | 
|    }
 | 
| @@ -912,8 +912,8 @@
 | 
|  
 | 
|  class LoopChoiceNode: public ChoiceNode {
 | 
|   public:
 | 
| -  explicit LoopChoiceNode(bool body_can_be_zero_length, Isolate* isolate)
 | 
| -      : ChoiceNode(2, isolate),
 | 
| +  explicit LoopChoiceNode(bool body_can_be_zero_length, Zone* zone)
 | 
| +      : ChoiceNode(2, zone),
 | 
|          loop_node_(NULL),
 | 
|          continue_node_(NULL),
 | 
|          body_can_be_zero_length_(body_can_be_zero_length) { }
 | 
| @@ -996,8 +996,8 @@
 | 
|  
 | 
|  class BoyerMoorePositionInfo : public ZoneAllocated {
 | 
|   public:
 | 
| -  explicit BoyerMoorePositionInfo(Isolate* isolate)
 | 
| -      : map_(new(isolate) ZoneGrowableArray<bool>(kMapSize)),
 | 
| +  explicit BoyerMoorePositionInfo(Zone* zone)
 | 
| +      : map_(new(zone) ZoneGrowableArray<bool>(kMapSize)),
 | 
|          map_count_(0),
 | 
|          w_(kNotYet),
 | 
|          s_(kNotYet),
 | 
| @@ -1034,7 +1034,7 @@
 | 
|  class BoyerMooreLookahead : public ZoneAllocated{
 | 
|   public:
 | 
|    BoyerMooreLookahead(intptr_t length, RegExpCompiler* compiler,
 | 
| -                      Isolate* Isolate);
 | 
| +                      Zone* Zone);
 | 
|  
 | 
|    intptr_t length() { return length_; }
 | 
|    intptr_t max_char() { return max_char_; }
 | 
| @@ -1244,13 +1244,13 @@
 | 
|    void AdvanceCurrentPositionInTrace(intptr_t by, RegExpCompiler* compiler);
 | 
|  
 | 
|   private:
 | 
| -  intptr_t FindAffectedRegisters(OutSet* affected_registers, Isolate* isolate);
 | 
| +  intptr_t FindAffectedRegisters(OutSet* affected_registers, Zone* zone);
 | 
|    void PerformDeferredActions(RegExpMacroAssembler* macro,
 | 
|                                intptr_t max_register,
 | 
|                                const OutSet& affected_registers,
 | 
|                                OutSet* registers_to_pop,
 | 
|                                OutSet* registers_to_clear,
 | 
| -                              Isolate* isolate);
 | 
| +                              Zone* zone);
 | 
|    void RestoreAffectedRegisters(RegExpMacroAssembler* macro,
 | 
|                                  intptr_t max_register,
 | 
|                                  const OutSet& registers_to_pop,
 | 
| @@ -1402,7 +1402,7 @@
 | 
|        const ZoneGrowableArray<const ICData*>& ic_data_array);
 | 
|  
 | 
|    static RawJSRegExp* CreateJSRegExp(
 | 
| -      Isolate* isolate,
 | 
| +      Zone* zone,
 | 
|        const String& pattern,
 | 
|        bool multi_line,
 | 
|        bool ignore_case);
 | 
| 
 |