| Index: Source/core/workers/WorkerThread.cpp
 | 
| diff --git a/Source/core/workers/WorkerThread.cpp b/Source/core/workers/WorkerThread.cpp
 | 
| index f59a49182a66ff3dcd4b57653f081d209767d181..8679bc071b18915b966013409b89b160f95d1d22 100644
 | 
| --- a/Source/core/workers/WorkerThread.cpp
 | 
| +++ b/Source/core/workers/WorkerThread.cpp
 | 
| @@ -265,6 +265,7 @@ WorkerThread::WorkerThread(const char* threadName, PassRefPtr<WorkerLoaderProxy>
 | 
|      , m_isolate(nullptr)
 | 
|      , m_shutdownEvent(adoptPtr(blink::Platform::current()->createWaitableEvent()))
 | 
|      , m_terminationEvent(adoptPtr(blink::Platform::current()->createWaitableEvent()))
 | 
| +    , m_thread(nullptr)
 | 
|  {
 | 
|      MutexLocker lock(threadSetMutex());
 | 
|      workerThreads().add(this);
 | 
| @@ -281,8 +282,11 @@ void WorkerThread::start()
 | 
|  {
 | 
|      if (m_thread)
 | 
|          return;
 | 
| -
 | 
| -    m_thread = createWebThreadSupportingGC();
 | 
| +    m_thread = m_startupData->m_thread;
 | 
| +    if (!m_thread) {
 | 
| +        m_ownThread = createWebThreadSupportingGC();
 | 
| +        m_thread = m_ownThread.get();
 | 
| +    }
 | 
|      m_thread->postTask(FROM_HERE, new Task(threadSafeBind(&WorkerThread::initialize, AllowCrossThreadAccess(this))));
 | 
|  }
 | 
|  
 | 
| 
 |