| Index: src/heap/mark-compact.cc | 
| diff --git a/src/heap/mark-compact.cc b/src/heap/mark-compact.cc | 
| index b64b2d24fc3d1a24baaa8314e291eeace6193adb..6a1a043d0cc76c1cab1162a2f6a2b032948c6979 100644 | 
| --- a/src/heap/mark-compact.cc | 
| +++ b/src/heap/mark-compact.cc | 
| @@ -1087,9 +1087,11 @@ class StaticYoungGenerationMarkingVisitor | 
| StackLimitCheck check(heap->isolate()); | 
| if (check.HasOverflowed()) return false; | 
|  | 
| -    if (ObjectMarking::IsBlackOrGrey<MarkingMode::YOUNG_GENERATION>(object)) | 
| +    if (ObjectMarking::IsBlackOrGrey<MarkBit::NON_ATOMIC, | 
| +                                     MarkingMode::YOUNG_GENERATION>(object)) | 
| return true; | 
| -    ObjectMarking::WhiteToBlack<MarkingMode::YOUNG_GENERATION>(object); | 
| +    ObjectMarking::WhiteToBlack<MarkBit::NON_ATOMIC, | 
| +                                MarkingMode::YOUNG_GENERATION>(object); | 
| IterateBody(object->map(), object); | 
| return true; | 
| } | 
| @@ -1368,11 +1370,11 @@ class RootMarkingVisitor : public ObjectVisitor { | 
| !collector_->heap()->InNewSpace(object)) | 
| return; | 
|  | 
| -    if (ObjectMarking::IsBlackOrGrey<mode>(object)) return; | 
| +    if (ObjectMarking::IsBlackOrGrey<MarkBit::NON_ATOMIC, mode>(object)) return; | 
|  | 
| Map* map = object->map(); | 
| // Mark the object. | 
| -    ObjectMarking::WhiteToBlack<mode>(object); | 
| +    ObjectMarking::WhiteToBlack<MarkBit::NON_ATOMIC, mode>(object); | 
|  | 
| switch (mode) { | 
| case MarkingMode::FULL: { | 
| @@ -1987,7 +1989,7 @@ void MarkCompactCollector::EmptyMarkingDeque() { | 
| DCHECK(!object->IsFiller()); | 
| DCHECK(object->IsHeapObject()); | 
| DCHECK(heap()->Contains(object)); | 
| -    DCHECK(!ObjectMarking::IsWhite<mode>(object)); | 
| +    DCHECK(!(ObjectMarking::IsWhite<MarkBit::NON_ATOMIC, mode>(object))); | 
|  | 
| Map* map = object->map(); | 
| switch (mode) { | 
| @@ -1996,7 +1998,7 @@ void MarkCompactCollector::EmptyMarkingDeque() { | 
| MarkCompactMarkingVisitor::IterateBody(map, object); | 
| } break; | 
| case MarkingMode::YOUNG_GENERATION: { | 
| -        DCHECK(ObjectMarking::IsBlack<mode>(object)); | 
| +        DCHECK((ObjectMarking::IsBlack<MarkBit::NON_ATOMIC, mode>(object))); | 
| StaticYoungGenerationMarkingVisitor::IterateBody(map, object); | 
| } break; | 
| } | 
| @@ -2254,11 +2256,13 @@ SlotCallbackResult MarkCompactCollector::CheckAndMarkObject( | 
| // has to be in ToSpace. | 
| DCHECK(heap->InToSpace(object)); | 
| HeapObject* heap_object = reinterpret_cast<HeapObject*>(object); | 
| -    if (ObjectMarking::IsBlackOrGrey<MarkingMode::YOUNG_GENERATION>( | 
| +    if (ObjectMarking::IsBlackOrGrey<MarkBit::NON_ATOMIC, | 
| +                                     MarkingMode::YOUNG_GENERATION>( | 
| heap_object)) { | 
| return KEEP_SLOT; | 
| } | 
| -    ObjectMarking::WhiteToBlack<MarkingMode::YOUNG_GENERATION>(heap_object); | 
| +    ObjectMarking::WhiteToBlack<MarkBit::NON_ATOMIC, | 
| +                                MarkingMode::YOUNG_GENERATION>(heap_object); | 
| StaticYoungGenerationMarkingVisitor::IterateBody(heap_object->map(), | 
| heap_object); | 
| return KEEP_SLOT; | 
|  |