summaryrefslogtreecommitdiff
path: root/lib/events.js
diff options
context:
space:
mode:
authorTrevor Norris <trev.norris@gmail.com>2013-02-14 00:48:11 -0800
committerisaacs <i@izs.me>2013-03-01 17:36:47 -0800
commit75305f3babd9e927e92b0d9b70d8bb026492ebd0 (patch)
treead953b7593675e5241f47810b83cafaab28fe576 /lib/events.js
parent7707acd6efd40b15f9ee1190d75176d9d3639c0e (diff)
downloadnode-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.js11
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;
+};