diff options
Diffstat (limited to 'lib/events.js')
-rw-r--r-- | lib/events.js | 36 |
1 files changed, 19 insertions, 17 deletions
diff --git a/lib/events.js b/lib/events.js index b69dc8f20f..0e5e85f962 100644 --- a/lib/events.js +++ b/lib/events.js @@ -20,6 +20,7 @@ // USE OR OTHER DEALINGS IN THE SOFTWARE. var domain; +var util = require('util'); exports.usingDomains = false; @@ -49,7 +50,7 @@ EventEmitter.defaultMaxListeners = 10; // Obviously not all Emitters should be limited to 10. This function allows // that to be increased. Set to zero for unlimited. EventEmitter.prototype.setMaxListeners = function(n) { - if (!IS_NUMBER(n) || n < 0) + if (!util.isNumber(n) || n < 0) throw TypeError('n must be a positive number'); this._maxListeners = n; return this; @@ -64,7 +65,7 @@ EventEmitter.prototype.emit = function(type) { // If there is no 'error' event listener then throw. if (type === 'error') { if (!this._events.error || - (IS_OBJECT(this._events.error) && !this._events.error.length)) { + (util.isObject(this._events.error) && !this._events.error.length)) { er = arguments[1]; if (this.domain) { if (!er) er = new TypeError('Uncaught, unspecified "error" event.'); @@ -83,13 +84,13 @@ EventEmitter.prototype.emit = function(type) { handler = this._events[type]; - if (IS_UNDEFINED(handler)) + if (util.isUndefined(handler)) return false; if (this.domain && this !== process) this.domain.enter(); - if (IS_FUNCTION(handler)) { + if (util.isFunction(handler)) { switch (arguments.length) { // fast cases case 1: @@ -109,7 +110,7 @@ EventEmitter.prototype.emit = function(type) { args[i - 1] = arguments[i]; handler.apply(this, args); } - } else if (IS_OBJECT(handler)) { + } else if (util.isObject(handler)) { len = arguments.length; args = new Array(len - 1); for (i = 1; i < len; i++) @@ -130,7 +131,7 @@ EventEmitter.prototype.emit = function(type) { EventEmitter.prototype.addListener = function(type, listener) { var m; - if (!IS_FUNCTION(listener)) + if (!util.isFunction(listener)) throw TypeError('listener must be a function'); if (!this._events) @@ -140,12 +141,13 @@ EventEmitter.prototype.addListener = function(type, listener) { // adding it to the listeners, first emit "newListener". if (this._events.newListener) this.emit('newListener', type, - IS_FUNCTION(listener.listener) ? listener.listener : listener); + util.isFunction(listener.listener) ? + listener.listener : listener); if (!this._events[type]) // Optimize the case of one listener. Don't need the extra array object. this._events[type] = listener; - else if (IS_OBJECT(this._events[type])) + else if (util.isObject(this._events[type])) // If we've already got an array, just append. this._events[type].push(listener); else @@ -153,9 +155,9 @@ EventEmitter.prototype.addListener = function(type, listener) { this._events[type] = [this._events[type], listener]; // Check for listener leak - if (IS_OBJECT(this._events[type]) && !this._events[type].warned) { + if (util.isObject(this._events[type]) && !this._events[type].warned) { var m; - if (!IS_UNDEFINED(this._maxListeners)) { + if (!util.isUndefined(this._maxListeners)) { m = this._maxListeners; } else { m = EventEmitter.defaultMaxListeners; @@ -177,7 +179,7 @@ EventEmitter.prototype.addListener = function(type, listener) { EventEmitter.prototype.on = EventEmitter.prototype.addListener; EventEmitter.prototype.once = function(type, listener) { - if (!IS_FUNCTION(listener)) + if (!util.isFunction(listener)) throw TypeError('listener must be a function'); function g() { @@ -195,7 +197,7 @@ EventEmitter.prototype.once = function(type, listener) { EventEmitter.prototype.removeListener = function(type, listener) { var list, position, length, i; - if (!IS_FUNCTION(listener)) + if (!util.isFunction(listener)) throw TypeError('listener must be a function'); if (!this._events || !this._events[type]) @@ -206,12 +208,12 @@ EventEmitter.prototype.removeListener = function(type, listener) { position = -1; if (list === listener || - (IS_FUNCTION(list.listener) && list.listener === listener)) { + (util.isFunction(list.listener) && list.listener === listener)) { this._events[type] = undefined; if (this._events.removeListener) this.emit('removeListener', type, listener); - } else if (IS_OBJECT(list)) { + } else if (util.isObject(list)) { for (i = length; i-- > 0;) { if (list[i] === listener || (list[i].listener && list[i].listener === listener)) { @@ -265,7 +267,7 @@ EventEmitter.prototype.removeAllListeners = function(type) { listeners = this._events[type]; - if (IS_FUNCTION(listeners)) { + if (util.isFunction(listeners)) { this.removeListener(type, listeners); } else { // LIFO order @@ -281,7 +283,7 @@ EventEmitter.prototype.listeners = function(type) { var ret; if (!this._events || !this._events[type]) ret = []; - else if (IS_FUNCTION(this._events[type])) + else if (util.isFunction(this._events[type])) ret = [this._events[type]]; else ret = this._events[type].slice(); @@ -292,7 +294,7 @@ EventEmitter.listenerCount = function(emitter, type) { var ret; if (!emitter._events || !emitter._events[type]) ret = 0; - else if (IS_FUNCTION(emitter._events[type])) + else if (util.isFunction(emitter._events[type])) ret = 1; else ret = emitter._events[type].length; |