diff options
author | Trevor Norris <trev.norris@gmail.com> | 2013-02-14 00:48:11 -0800 |
---|---|---|
committer | isaacs <i@izs.me> | 2013-03-01 17:36:47 -0800 |
commit | 75305f3babd9e927e92b0d9b70d8bb026492ebd0 (patch) | |
tree | ad953b7593675e5241f47810b83cafaab28fe576 /lib/events.js | |
parent | 7707acd6efd40b15f9ee1190d75176d9d3639c0e (diff) | |
download | node-75305f3babd9e927e92b0d9b70d8bb026492ebd0.tar.gz |
events: add check for listeners length
Ability to return just the length of listeners for a given type, using
EventEmitter.listenerCount(emitter, event). This will be a lot cheaper
than creating a copy of the listeners array just to check its length.
Diffstat (limited to 'lib/events.js')
-rw-r--r-- | lib/events.js | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/lib/events.js b/lib/events.js index 223015ec6..69af3aee6 100644 --- a/lib/events.js +++ b/lib/events.js @@ -286,3 +286,14 @@ EventEmitter.prototype.listeners = function(type) { } return this._events[type].slice(0); }; + +EventEmitter.listenerCount = function(emitter, type) { + var ret; + if (!emitter._events || !emitter._events[type]) + ret = 0; + else if (typeof emitter._events[type] === 'function') + ret = 1; + else + ret = emitter._events[type].length; + return ret; +}; |