| Index: src/heap/heap.cc
 | 
| diff --git a/src/heap/heap.cc b/src/heap/heap.cc
 | 
| index 0432ee71fa0c329e6c1bf6e690883ab26f211a75..6a4acda903ed8cb6e7a95288b041f79197114b81 100644
 | 
| --- a/src/heap/heap.cc
 | 
| +++ b/src/heap/heap.cc
 | 
| @@ -109,6 +109,7 @@ Heap::Heap()
 | 
|  #endif  // DEBUG
 | 
|        old_generation_allocation_limit_(initial_old_generation_size_),
 | 
|        old_gen_exhausted_(false),
 | 
| +      optimize_for_memory_usage_(false),
 | 
|        inline_allocation_disabled_(false),
 | 
|        store_buffer_rebuilder_(store_buffer()),
 | 
|        hidden_string_(NULL),
 | 
| @@ -4906,6 +4907,9 @@ void Heap::CheckAndNotifyBackgroundIdleNotification(double idle_time_in_ms,
 | 
|      event.can_start_incremental_gc = incremental_marking()->IsStopped() &&
 | 
|                                       incremental_marking()->CanBeActivated();
 | 
|      memory_reducer_.NotifyBackgroundIdleNotification(event);
 | 
| +    optimize_for_memory_usage_ = true;
 | 
| +  } else {
 | 
| +    optimize_for_memory_usage_ = false;
 | 
|    }
 | 
|  }
 | 
|  
 | 
| @@ -5601,7 +5605,7 @@ void Heap::SetOldGenerationAllocationLimit(intptr_t old_gen_size,
 | 
|    }
 | 
|  
 | 
|    if (freed_global_handles >= kFreedGlobalHandlesThreshold ||
 | 
| -      memory_reducer_.ShouldGrowHeapSlowly()) {
 | 
| +      memory_reducer_.ShouldGrowHeapSlowly() || optimize_for_memory_usage_) {
 | 
|      factor = Min(factor, kConservativeHeapGrowingFactor);
 | 
|    }
 | 
|  
 | 
| 
 |