| Index: src/hydrogen.cc
 | 
| diff --git a/src/hydrogen.cc b/src/hydrogen.cc
 | 
| index 6bf082d86c9da8dc0a924ebf4270f63fc5725c32..6413fad0ad0bb3d2a72a23ca4683f8d700131bce 100644
 | 
| --- a/src/hydrogen.cc
 | 
| +++ b/src/hydrogen.cc
 | 
| @@ -979,7 +979,8 @@ void HGraph::InferTypes(ZoneList<HValue*>* worklist) {
 | 
|  
 | 
|  class HRangeAnalysis BASE_EMBEDDED {
 | 
|   public:
 | 
| -  explicit HRangeAnalysis(HGraph* graph) : graph_(graph), changed_ranges_(16) {}
 | 
| +  explicit HRangeAnalysis(HGraph* graph) :
 | 
| +      graph_(graph), zone_(graph->isolate()->zone()), changed_ranges_(16) { }
 | 
|  
 | 
|    void Analyze();
 | 
|  
 | 
| @@ -993,6 +994,7 @@ class HRangeAnalysis BASE_EMBEDDED {
 | 
|    void AddRange(HValue* value, Range* range);
 | 
|  
 | 
|    HGraph* graph_;
 | 
| +  Zone* zone_;
 | 
|    ZoneList<HValue*> changed_ranges_;
 | 
|  };
 | 
|  
 | 
| @@ -1079,14 +1081,14 @@ void HRangeAnalysis::UpdateControlFlowRange(Token::Value op,
 | 
|  
 | 
|    if (op == Token::EQ || op == Token::EQ_STRICT) {
 | 
|      // The same range has to apply for value.
 | 
| -    new_range = range->Copy();
 | 
| +    new_range = range->Copy(zone_);
 | 
|    } else if (op == Token::LT || op == Token::LTE) {
 | 
| -    new_range = range->CopyClearLower();
 | 
| +    new_range = range->CopyClearLower(zone_);
 | 
|      if (op == Token::LT) {
 | 
|        new_range->AddConstant(-1);
 | 
|      }
 | 
|    } else if (op == Token::GT || op == Token::GTE) {
 | 
| -    new_range = range->CopyClearUpper();
 | 
| +    new_range = range->CopyClearUpper(zone_);
 | 
|      if (op == Token::GT) {
 | 
|        new_range->AddConstant(1);
 | 
|      }
 | 
| @@ -1101,7 +1103,7 @@ void HRangeAnalysis::UpdateControlFlowRange(Token::Value op,
 | 
|  void HRangeAnalysis::InferRange(HValue* value) {
 | 
|    ASSERT(!value->HasRange());
 | 
|    if (!value->representation().IsNone()) {
 | 
| -    value->ComputeInitialRange();
 | 
| +    value->ComputeInitialRange(zone_);
 | 
|      Range* range = value->range();
 | 
|      TraceRange("Initial inferred range of %d (%s) set to [%d,%d]\n",
 | 
|                 value->id(),
 | 
| @@ -1122,7 +1124,7 @@ void HRangeAnalysis::RollBackTo(int index) {
 | 
|  
 | 
|  void HRangeAnalysis::AddRange(HValue* value, Range* range) {
 | 
|    Range* original_range = value->range();
 | 
| -  value->AddNewRange(range);
 | 
| +  value->AddNewRange(range, zone_);
 | 
|    changed_ranges_.Add(value);
 | 
|    Range* new_range = value->range();
 | 
|    TraceRange("Updated range of %d set to [%d,%d]\n",
 | 
| 
 |