return this;
};
-EventEmitter.prototype.getMaxListeners = function getMaxListeners() {
- if (!util.isUndefined(this._maxListeners))
- return this._maxListeners;
- else
+function $getMaxListeners(that) {
+ if (util.isUndefined(that._maxListeners))
return EventEmitter.defaultMaxListeners;
+ return that._maxListeners;
+}
+
+EventEmitter.prototype.getMaxListeners = function getMaxListeners() {
+ return $getMaxListeners(this);
};
EventEmitter.prototype.emit = function emit(type) {
// Check for listener leak
if (util.isObject(this._events[type]) && !this._events[type].warned) {
- var m = this.getMaxListeners();
+ var m = $getMaxListeners(this);
if (m && m > 0 && this._events[type].length > m) {
this._events[type].warned = true;
console.error('(node) warning: possible EventEmitter memory ' +
emitter.setMaxListeners(3);
assert.strictEqual(emitter.getMaxListeners(), 3);
+
+// https://github.com/iojs/io.js/issues/523 - second call should not throw.
+var recv = {};
+EventEmitter.prototype.on.call(recv, 'event', function() {});
+EventEmitter.prototype.on.call(recv, 'event', function() {});