| Index: src/heap/mark-compact-inl.h | 
| diff --git a/src/heap/mark-compact-inl.h b/src/heap/mark-compact-inl.h | 
| index 8861241df019528d05de4fc849cb6b68f3d59969..dd45c382fd4867d6090873b3efed05ff246c2932 100644 | 
| --- a/src/heap/mark-compact-inl.h | 
| +++ b/src/heap/mark-compact-inl.h | 
| @@ -179,9 +179,13 @@ HeapObject* LiveObjectIterator<T>::Next() { | 
|  | 
| // We found a live object. | 
| if (object != nullptr) { | 
| -        if (map == heap()->one_pointer_filler_map()) { | 
| -          // Black areas together with slack tracking may result in black one | 
| -          // word filler objects. We filter these objects out in the iterator. | 
| +        if (object->IsFiller()) { | 
| +          // There are two reasons why we can get black or grey fillers: | 
| +          // 1) Black areas together with slack tracking may result in black one | 
| +          // word filler objects. | 
| +          // 2) Left trimming may leave black or grey fillers behind because we | 
| +          // do not clear the old location of the object start. | 
| +          // We filter these objects out in the iterator. | 
| object = nullptr; | 
| } else { | 
| break; | 
|  |