Currently, the JSLock methods are implemented for platforms that support pthreads. As a result, the Windows port is only using a stub JSLock that does nothing. This stub implementation causes ASSERT(!m_apiLock.currentThreadIsHoldingLock()) (in JSGlobalData::~JSGlobalData()) to always fail. In addition, the stub JSLock implementation does not provide the needed synchronization, and as a result, the Windows port crashes or fails in intermittent ways when running the layout tests.
<rdar://problem/12297283>
Created attachment 164307 [details] Fix.
Committed r128704: <http://trac.webkit.org/changeset/128704>