From 81d3de7e6db6abe36ac907d8f0fa6dfc01f7bbcd Mon Sep 17 00:00:00 2001 From: Ryan Dahl Date: Mon, 7 Mar 2011 13:16:00 -0800 Subject: [PATCH] setMaxListeners should initialize _events --- lib/events.js | 1 + test/simple/test-event-emitter-add-listeners.js | 6 ++++++ 2 files changed, 7 insertions(+) diff --git a/lib/events.js b/lib/events.js index 6505606b4e5..b69b335cbe5 100644 --- a/lib/events.js +++ b/lib/events.js @@ -9,6 +9,7 @@ var isArray = Array.isArray; // that to be increased. Set to zero for unlimited. var defaultMaxListeners = 10; EventEmitter.prototype.setMaxListeners = function(n) { + if (!this._events) this._events = {}; this._events.maxListeners = n; }; diff --git a/test/simple/test-event-emitter-add-listeners.js b/test/simple/test-event-emitter-add-listeners.js index 7c4b7232ebd..306f4fca8ec 100644 --- a/test/simple/test-event-emitter-add-listeners.js +++ b/test/simple/test-event-emitter-add-listeners.js @@ -23,6 +23,12 @@ console.log('start'); e.emit('hello', 'a', 'b'); + +// just make sure that this doesn't throw: +var f = new events.EventEmitter(); +f.setMaxListeners(0); + + process.addListener('exit', function() { assert.deepEqual(['hello'], events_new_listener_emited); assert.equal(1, times_hello_emited);