Bug 1514197 - finish emitting events before clearing; r=jdescottes

Depends on D14547

Differential Revision: https://phabricator.services.mozilla.com/D14552

--HG--
extra : moz-landing-system : lando
This commit is contained in:
yulia 2018-12-14 17:36:45 +00:00
parent 1cd5e24aeb
commit 7c5e1183dd

View File

@ -167,15 +167,15 @@ class EventEmitter {
// in emit.
const listenersForType = new Set(target[eventListeners].get(type));
const events = target[eventListeners];
const listeners = events.get(type);
for (const listener of listenersForType) {
// If the object was destroyed during event emission, stop emitting.
if (!(eventListeners in target)) {
break;
}
const events = target[eventListeners];
const listeners = events.get(type);
// If listeners were removed during emission, make sure the
// event handler we're going to fire wasn't removed.
if (listeners && listeners.has(listener)) {