vendor/node_modules/mocha/lib/browser/events.js in stylus-source-0.49.3 vs vendor/node_modules/mocha/lib/browser/events.js in stylus-source-0.54.5

- old
+ new

@@ -1,33 +1,44 @@ +'use strict'; + /** * Module exports. */ exports.EventEmitter = EventEmitter; /** - * Check if `obj` is an array. + * Object#toString reference. */ +var objToString = Object.prototype.toString; -function isArray(obj) { - return '[object Array]' == {}.toString.call(obj); +/** + * Check if a value is an array. + * + * @api private + * @param {*} val The value to test. + * @return {boolean} true if the value is an array, otherwise false. + */ +function isArray (val) { + return objToString.call(val) === '[object Array]'; } /** * Event emitter constructor. * * @api public */ +function EventEmitter () {} -function EventEmitter(){}; - /** - * Adds a listener. + * Add a listener. * * @api public + * @param {string} name Event name. + * @param {Function} fn Event handler. + * @return {EventEmitter} Emitter instance. */ - EventEmitter.prototype.on = function (name, fn) { if (!this.$events) { this.$events = {}; } @@ -46,32 +57,36 @@ /** * Adds a volatile listener. * * @api public + * @param {string} name Event name. + * @param {Function} fn Event handler. + * @return {EventEmitter} Emitter instance. */ - EventEmitter.prototype.once = function (name, fn) { var self = this; function on () { self.removeListener(name, on); fn.apply(this, arguments); - }; + } on.listener = fn; this.on(name, on); return this; }; /** - * Removes a listener. + * Remove a listener. * * @api public + * @param {string} name Event name. + * @param {Function} fn Event handler. + * @return {EventEmitter} Emitter instance. */ - EventEmitter.prototype.removeListener = function (name, fn) { if (this.$events && this.$events[name]) { var list = this.$events[name]; if (isArray(list)) { @@ -100,15 +115,16 @@ return this; }; /** - * Removes all listeners for an event. + * Remove all listeners for an event. * * @api public + * @param {string} name Event name. + * @return {EventEmitter} Emitter instance. */ - EventEmitter.prototype.removeAllListeners = function (name) { if (name === undefined) { this.$events = {}; return this; } @@ -119,15 +135,16 @@ return this; }; /** - * Gets all listeners for a certain event. + * Get all listeners for a given event. * * @api public + * @param {string} name Event name. + * @return {EventEmitter} Emitter instance. */ - EventEmitter.prototype.listeners = function (name) { if (!this.$events) { this.$events = {}; } @@ -141,15 +158,16 @@ return this.$events[name]; }; /** - * Emits an event. + * Emit an event. * * @api public + * @param {string} name Event name. + * @return {boolean} true if at least one handler was invoked, else false. */ - EventEmitter.prototype.emit = function (name) { if (!this.$events) { return false; } @@ -157,12 +175,12 @@ if (!handler) { return false; } - var args = [].slice.call(arguments, 1); + var args = Array.prototype.slice.call(arguments, 1); - if ('function' == typeof handler) { + if (typeof handler === 'function') { handler.apply(this, args); } else if (isArray(handler)) { var listeners = handler.slice(); for (var i = 0, l = listeners.length; i < l; i++) {