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++) {