| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 | 'use strict';var inherits = require('inherits')  , EventTarget = require('./eventtarget')  ;function EventEmitter() {  EventTarget.call(this);}inherits(EventEmitter, EventTarget);EventEmitter.prototype.removeAllListeners = function(type) {  if (type) {    delete this._listeners[type];  } else {    this._listeners = {};  }};EventEmitter.prototype.once = function(type, listener) {  var self = this    , fired = false;  function g() {    self.removeListener(type, g);    if (!fired) {      fired = true;      listener.apply(this, arguments);    }  }  this.on(type, g);};EventEmitter.prototype.emit = function() {  var type = arguments[0];  var listeners = this._listeners[type];  if (!listeners) {    return;  }  // equivalent of Array.prototype.slice.call(arguments, 1);  var l = arguments.length;  var args = new Array(l - 1);  for (var ai = 1; ai < l; ai++) {    args[ai - 1] = arguments[ai];  }  for (var i = 0; i < listeners.length; i++) {    listeners[i].apply(this, args);  }};EventEmitter.prototype.on = EventEmitter.prototype.addListener = EventTarget.prototype.addEventListener;EventEmitter.prototype.removeListener = EventTarget.prototype.removeEventListener;module.exports.EventEmitter = EventEmitter;
 |