| Index: third_party/WebKit/Source/platform/heap/HeapAllocator.cpp
 | 
| diff --git a/third_party/WebKit/Source/platform/heap/HeapAllocator.cpp b/third_party/WebKit/Source/platform/heap/HeapAllocator.cpp
 | 
| index 7531234ead993dd62f5872c0a72163490c5e41e3..8d27428b2d4aa8084f36731368b34a4b7d6827ac 100644
 | 
| --- a/third_party/WebKit/Source/platform/heap/HeapAllocator.cpp
 | 
| +++ b/third_party/WebKit/Source/platform/heap/HeapAllocator.cpp
 | 
| @@ -88,6 +88,12 @@
 | 
|  
 | 
|  bool HeapAllocator::backingShrink(void* address, size_t quantizedCurrentSize, size_t quantizedShrunkSize)
 | 
|  {
 | 
| +    // We shrink the object only if the shrinking will make a non-small
 | 
| +    // prompt-free block.
 | 
| +    // FIXME: Optimize the threshold size.
 | 
| +    if (quantizedCurrentSize <= quantizedShrunkSize + sizeof(HeapObjectHeader) + sizeof(void*) * 32)
 | 
| +        return true;
 | 
| +
 | 
|      if (!address)
 | 
|          return true;
 | 
|  
 | 
| @@ -106,12 +112,6 @@
 | 
|      HeapObjectHeader* header = HeapObjectHeader::fromPayload(address);
 | 
|      ASSERT(header->checkHeader());
 | 
|      NormalPageHeap* heap = static_cast<NormalPage*>(page)->heapForNormalPage();
 | 
| -    // We shrink the object only if the shrinking will make a non-small
 | 
| -    // prompt-free block.
 | 
| -    // FIXME: Optimize the threshold size.
 | 
| -    if (quantizedCurrentSize <= quantizedShrunkSize + sizeof(HeapObjectHeader) + sizeof(void*) * 32 && !heap->isObjectAllocatedAtAllocationPoint(header))
 | 
| -        return true;
 | 
| -
 | 
|      bool succeededAtAllocationPoint = heap->shrinkObject(header, quantizedShrunkSize);
 | 
|      if (succeededAtAllocationPoint)
 | 
|          state->allocationPointAdjusted(heap->heapIndex());
 | 
| 
 |