| Index: Source/platform/heap/Heap.cpp
 | 
| diff --git a/Source/platform/heap/Heap.cpp b/Source/platform/heap/Heap.cpp
 | 
| index dfe3e0e773fac5a0817483677da6f0fd45d8706c..67394e8c468cd16e49e105e5db9f3a389555d42d 100644
 | 
| --- a/Source/platform/heap/Heap.cpp
 | 
| +++ b/Source/platform/heap/Heap.cpp
 | 
| @@ -1946,8 +1946,7 @@
 | 
|  
 | 
|  enum MarkingMode {
 | 
|      GlobalMarking,
 | 
| -    ThreadLocalMarking, // This works only if the thread is terminating.
 | 
| -    ZombieMarking,
 | 
| +    ThreadLocalMarking,
 | 
|  };
 | 
|  
 | 
|  template <MarkingMode Mode>
 | 
| @@ -2126,21 +2125,15 @@
 | 
|  
 | 
|      inline bool shouldMarkObject(const void* objectPointer)
 | 
|      {
 | 
| -        if (Mode == GlobalMarking)
 | 
| +        if (Mode != ThreadLocalMarking)
 | 
|              return true;
 | 
|  
 | 
| -        if (Mode == ThreadLocalMarking) {
 | 
| -            BasePage* page = pageFromObject(objectPointer);
 | 
| -            ASSERT(!page->orphaned());
 | 
| -            // When doing a thread local GC, the marker checks if the object
 | 
| -            // resides in another thread's heap. If it does, the object should
 | 
| -            // not be marked & traced.
 | 
| -            return page->terminating();
 | 
| -        }
 | 
| -
 | 
| -        // ZombieMarking case.  Any objects must not be owned by other threads.
 | 
| -        ASSERT(ThreadState::current()->findPageFromAddress(objectPointer));
 | 
| -        return true;
 | 
| +        BasePage* page = pageFromObject(objectPointer);
 | 
| +        ASSERT(!page->orphaned());
 | 
| +        // When doing a thread local GC, the marker checks if
 | 
| +        // the object resides in another thread's heap. If it
 | 
| +        // does, the object should not be marked & traced.
 | 
| +        return page->terminating();
 | 
|      }
 | 
|  
 | 
|  #if ENABLE(ASSERT)
 | 
| @@ -2483,17 +2476,6 @@
 | 
|          ScriptForbiddenScope::exit();
 | 
|  }
 | 
|  
 | 
| -void Heap::visitObjects(ThreadState* state, const HashSet<void*>& objects)
 | 
| -{
 | 
| -    MarkingVisitor<ZombieMarking> visitor;
 | 
| -    ThreadState::NoAllocationScope noAllocationScope(state);
 | 
| -    for (void* address : objects)
 | 
| -        checkAndMarkPointer(&visitor, reinterpret_cast<Address>(address));
 | 
| -    processMarkingStack(&visitor);
 | 
| -    postMarkingProcessing(&visitor);
 | 
| -    globalWeakProcessing(&visitor);
 | 
| -}
 | 
| -
 | 
|  void Heap::collectGarbageForTerminatingThread(ThreadState* state)
 | 
|  {
 | 
|      // We explicitly do not enter a safepoint while doing thread specific
 | 
| 
 |