| Index: src/heap/heap.cc | 
| diff --git a/src/heap/heap.cc b/src/heap/heap.cc | 
| index 83fb6394f96e500027120929fbe70b93a438209b..74154ef5020d42ba6648463a571ee91662577583 100644 | 
| --- a/src/heap/heap.cc | 
| +++ b/src/heap/heap.cc | 
| @@ -329,7 +329,7 @@ void Heap::PrintShortHeapStatistics() { | 
| ", committed: %6" V8_PTR_PREFIX "d KB\n", | 
| new_space_.Size() / KB, new_space_.Available() / KB, | 
| new_space_.CommittedMemory() / KB); | 
| -  PrintIsolate(isolate_, "Old space,       used: %6" V8_PTR_PREFIX | 
| +  PrintIsolate(isolate_, "Old space,          used: %6" V8_PTR_PREFIX | 
| "d KB" | 
| ", available: %6" V8_PTR_PREFIX | 
| "d KB" | 
| @@ -5266,6 +5266,7 @@ void Heap::SetOldGenerationAllocationLimit(intptr_t old_gen_size, | 
| // TODO(hpayer): The idle factor could make the handles heuristic obsolete. | 
| // Look into that. | 
| double factor; | 
| +  double idle_factor; | 
| if (freed_global_handles <= kMinHandles) { | 
| factor = max_factor; | 
| } else if (freed_global_handles >= kMaxHandles) { | 
| @@ -5283,10 +5284,21 @@ void Heap::SetOldGenerationAllocationLimit(intptr_t old_gen_size, | 
| factor = min_factor; | 
| } | 
|  | 
| +  idle_factor = Min(factor, idle_max_factor); | 
| + | 
| old_generation_allocation_limit_ = | 
| CalculateOldGenerationAllocationLimit(factor, old_gen_size); | 
| -  idle_old_generation_allocation_limit_ = CalculateOldGenerationAllocationLimit( | 
| -      Min(factor, idle_max_factor), old_gen_size); | 
| +  idle_old_generation_allocation_limit_ = | 
| +      CalculateOldGenerationAllocationLimit(idle_factor, old_gen_size); | 
| + | 
| +  if (FLAG_trace_gc_verbose) { | 
| +    PrintIsolate( | 
| +        isolate_, | 
| +        "Grow: old size: %" V8_PTR_PREFIX "d KB, new limit: %" V8_PTR_PREFIX | 
| +        "d KB (%.1f), new idle limit: %" V8_PTR_PREFIX "d KB (%.1f)\n", | 
| +        old_gen_size / KB, old_generation_allocation_limit_ / KB, factor, | 
| +        idle_old_generation_allocation_limit_ / KB, idle_factor); | 
| +  } | 
| } | 
|  | 
|  | 
|  |