diff --git a/src/crankshaft/hydrogen-instructions.h b/src/crankshaft/hydrogen-instructions.h index fdb1fd6d46..f3d0b974ae 100644 --- a/src/crankshaft/hydrogen-instructions.h +++ b/src/crankshaft/hydrogen-instructions.h @@ -5148,8 +5148,11 @@ inline bool ReceiverObjectNeedsWriteBarrier(HValue* object, HAllocate* allocate = HAllocate::cast(object); if (allocate->IsAllocationFolded()) { HValue* dominator = allocate->allocation_folding_dominator(); - DCHECK(HAllocate::cast(dominator)->IsAllocationFoldingDominator()); - object = dominator; + // There is no guarantee that all allocations are folded together because + // GVN performs a fixpoint. + if (HAllocate::cast(dominator)->IsAllocationFoldingDominator()) { + object = dominator; + } } }