There's no reason why we would ever want --tradeDestructorBlocs to be false. <rdar://problem/39681388>
Created attachment 364572 [details] proposed patch.
Comment on attachment 364572 [details] proposed patch. View in context: https://bugs.webkit.org/attachment.cgi?id=364572&action=review r=me > Source/JavaScriptCore/ChangeLog:16 > + (!Options::tradeDestructorBlocks() && needsDestruction()). This assertion is > + outdated because the BlockDirectory's m_empty set used to mean the set of all > + blocks that have no live (as in not reachable by GC) objects and dead objects > + also do not require destructors to be called on them. The current meaning of > + m_empty is that it is the set of all blocks that have no live objects, OK, now, it is separated as "m_destructible". > Source/JavaScriptCore/heap/LocalAllocator.cpp:190 > OK, it is always calling `block->sweep(nullptr)`. So we can get blocks even if m_directory is destructible (trade-destructor-blocks).
Thanks for the review. Landed in r242912: <http://trac.webkit.org/r242912>.