Spaces:
Runtime error
Runtime error
| // Some browsers have a non-functional EventTarget, so we write our own version that works everywhere. | |
| class EventTargetShim { | |
| constructor () { | |
| this._events = {}; | |
| } | |
| addEventListener (event, handler) { | |
| if (!this._events[event]) { | |
| this._events[event] = []; | |
| } | |
| this._events[event].push(handler); | |
| } | |
| removeEventListener (event, handler) { | |
| const handlers = this._events[event]; | |
| if (handlers) { | |
| this._events[event] = handlers.filter(i => i !== handler); | |
| } | |
| } | |
| dispatchEvent (event) { | |
| const handlers = this._events[event.type]; | |
| if (handlers) { | |
| for (const fn of handlers) { | |
| fn(event); | |
| } | |
| } | |
| } | |
| } | |
| export default EventTargetShim; | |