REGRESSION: ASSERTION FAILED: !m_lastActiveBlock on js/function-apply.html
authorcommit-queue@webkit.org <commit-queue@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 15 Mar 2016 21:48:15 +0000 (21:48 +0000)
committercommit-queue@webkit.org <commit-queue@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 15 Mar 2016 21:48:15 +0000 (21:48 +0000)
commit705386e537dd74532df401c49110e2c4bcb8e26d
tree0d0fd0ecbd9efad923afd76a1ba0c4330c4ac8a2
parentc31f9ec53eceb5ff0ee86dc5d3a7ce6e292bd14a
REGRESSION: ASSERTION FAILED: !m_lastActiveBlock on js/function-apply.html
https://bugs.webkit.org/show_bug.cgi?id=155411
<rdar://problem/25134537>

Patch by Joseph Pecoraro <pecoraro@apple.com> on 2016-03-15
Reviewed by Mark Lam.

Source/JavaScriptCore:

* heap/Heap.cpp:
(JSC::Heap::collectImpl):
(JSC::Heap::didFinishCollection):
During collection allocators are stop/reset. The HeapProfiler tasks
were using HeapIterationScope (to satisfy MarkedSpace forEachCell API
contracts) which was doing its own stop/resume of allocators. Doing a
stop/resume in between the normal stop/reset of collection is unexpected.

Move this to didFinishCollection, alongside other heap iterations
like zombies and immortal objects. Putting this after those tasks
also means the heap snapshots will respect the zombies/immortal options
when deciding if the cell is alive or not.

LayoutTests:

* platform/mac/TestExpectations:
Unmark test as flakey.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@198229 268f45cc-cd09-0410-ab3c-d52691b4dbfc
LayoutTests/ChangeLog
LayoutTests/platform/mac/TestExpectations
Source/JavaScriptCore/ChangeLog
Source/JavaScriptCore/heap/Heap.cpp