You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
'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;
|