Index: src/heap/heap.cc |
diff --git a/src/heap/heap.cc b/src/heap/heap.cc |
index 054ebced2a899ff2d20941a4d4b76638de122f8a..c98e8d938d782b5cd62cc6c55e604346269097ef 100644 |
--- a/src/heap/heap.cc |
+++ b/src/heap/heap.cc |
@@ -1515,6 +1515,10 @@ class ScavengeWeakObjectRetainer : public WeakObjectRetainer { |
void Heap::Scavenge() { |
RelocationLock relocation_lock(this); |
+ // There are soft limits in the allocation code, designed to trigger a mark |
+ // sweep collection by failing allocations. There is no sense in trying to |
+ // trigger one during scavenge: scavenges allocation should always succeed. |
+ AlwaysAllocateScope scope(isolate()); |
#ifdef VERIFY_HEAP |
if (FLAG_verify_heap) VerifyNonPointerSpacePointers(this); |