function EmitterWrapper (emitter) { this.listeners = {} this.emitter = emitter } EmitterWrapper.prototype.addListener = EmitterWrapper.prototype.on = function (event, listener) { this.emitter.addListener(event, listener) if (!this.listeners.hasOwnProperty(event)) { this.listeners[event] = [] } this.listeners[event].push(listener) return this } EmitterWrapper.prototype.removeAllListeners = function (event) { var events = event ? [event] : Object.keys(this.listeners) var self = this events.forEach(function (event) { self.listeners[event].forEach(function (listener) { self.emitter.removeListener(event, listener) }) delete self.listeners[event] }) return this } module.exports = EmitterWrapper