slotchange event as spec'ed is not completely async: https://github.com/whatwg/dom/pull/229 Match the spec'ed behavior of firing at the end of a micro task.
<rdar://problem/26154024>
Created attachment 280880 [details] Fixes the bug
Created attachment 280891 [details] Updated per spec change
Comment on attachment 280891 [details] Updated per spec change View in context: https://bugs.webkit.org/attachment.cgi?id=280891&action=review > Source/WebCore/dom/MutationObserver.cpp:189 > +void MutationObserver::enqueueSlotChangeEvent(HTMLSlotElement& slot) > +{ > + ASSERT(isMainThread()); > + ASSERT(!signalSlotList().contains(&slot)); > + signalSlotList().append(&slot); I think the code would read better if signalSlotList was called something more descriptive like slotsWithEnqueuedChangeEvents() > Source/WebCore/html/HTMLSlotElement.h:56 > + bool m_inSignalSlotList { false }; Similarly m_hasEnqueuedChangeEvent maybe
(In reply to comment #4) > Comment on attachment 280891 [details] > Updated per spec change > > View in context: > https://bugs.webkit.org/attachment.cgi?id=280891&action=review > > > Source/WebCore/dom/MutationObserver.cpp:189 > > +void MutationObserver::enqueueSlotChangeEvent(HTMLSlotElement& slot) > > +{ > > + ASSERT(isMainThread()); > > + ASSERT(!signalSlotList().contains(&slot)); > > + signalSlotList().append(&slot); > > I think the code would read better if signalSlotList was called something > more descriptive like slotsWithEnqueuedChangeEvents() > > > Source/WebCore/html/HTMLSlotElement.h:56 > > + bool m_inSignalSlotList { false }; > > Similarly m_hasEnqueuedChangeEvent maybe signal slot list is the name spec uses: https://dom.spec.whatwg.org/#signal-slot-list Will add the URL as comments.
Created attachment 280898 [details] Patch for landing
Comment on attachment 280898 [details] Patch for landing Clearing flags on attachment: 280898 Committed r201858: <http://trac.webkit.org/changeset/201858>
All reviewed patches have been landed. Closing bug.