|
|
@ -115,27 +115,29 @@ EventEmitter.prototype.addListener = function(type, listener) { |
|
|
|
// If we've already got an array, just append.
|
|
|
|
this._events[type].push(listener); |
|
|
|
|
|
|
|
// Check for listener leak
|
|
|
|
if (!this._events[type].warned) { |
|
|
|
var m; |
|
|
|
if (this._maxListeners !== undefined) { |
|
|
|
m = this._maxListeners; |
|
|
|
} else { |
|
|
|
m = defaultMaxListeners; |
|
|
|
} |
|
|
|
|
|
|
|
if (m && m > 0 && this._events[type].length > m) { |
|
|
|
this._events[type].warned = true; |
|
|
|
console.error('(node) warning: possible EventEmitter memory ' + |
|
|
|
'leak detected. %d listeners added. ' + |
|
|
|
'Use emitter.setMaxListeners() to increase limit.', |
|
|
|
this._events[type].length); |
|
|
|
console.trace(); |
|
|
|
} |
|
|
|
} |
|
|
|
} else { |
|
|
|
// Adding the second element, need to change to array.
|
|
|
|
this._events[type] = [this._events[type], listener]; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
// Check for listener leak
|
|
|
|
if (isArray(this._events[type]) && !this._events[type].warned) { |
|
|
|
var m; |
|
|
|
if (this._maxListeners !== undefined) { |
|
|
|
m = this._maxListeners; |
|
|
|
} else { |
|
|
|
m = defaultMaxListeners; |
|
|
|
} |
|
|
|
|
|
|
|
if (m && m > 0 && this._events[type].length > m) { |
|
|
|
this._events[type].warned = true; |
|
|
|
console.error('(node) warning: possible EventEmitter memory ' + |
|
|
|
'leak detected. %d listeners added. ' + |
|
|
|
'Use emitter.setMaxListeners() to increase limit.', |
|
|
|
this._events[type].length); |
|
|
|
console.trace(); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
return this; |
|
|
|