aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorisaacs <i@izs.me>2012-10-25 07:48:36 -0700
committerisaacs <i@izs.me>2012-10-25 07:51:05 -0700
commitc7b2e29e5e4b2a20e0cbc34d56c57d96720aadc2 (patch)
tree45b75447631a8672700eefc961384fedaf8b82d2 /lib
parent4b8629db3717a587a44b373cd10351e005b190f3 (diff)
downloadandroid-node-v8-c7b2e29e5e4b2a20e0cbc34d56c57d96720aadc2.tar.gz
android-node-v8-c7b2e29e5e4b2a20e0cbc34d56c57d96720aadc2.tar.bz2
android-node-v8-c7b2e29e5e4b2a20e0cbc34d56c57d96720aadc2.zip
events: Make the EventEmitter class monomorphic
Always add domain, _events, and _maxListeners properties, set to the default values at first. Leads to a very very slight perf improvement when using setMaxListeners, or dealing with a lot of EE objects that don't have any listeners.
Diffstat (limited to 'lib')
-rw-r--r--lib/events.js9
1 files changed, 4 insertions, 5 deletions
diff --git a/lib/events.js b/lib/events.js
index e0af38066a..4ef2daed92 100644
--- a/lib/events.js
+++ b/lib/events.js
@@ -23,6 +23,7 @@ var isArray = Array.isArray;
var domain;
function EventEmitter() {
+ this.domain = null;
if (exports.usingDomains) {
// if there is an active domain, then attach to it.
domain = domain || require('domain');
@@ -30,6 +31,8 @@ function EventEmitter() {
this.domain = domain.active;
}
}
+ this._events = null;
+ this._maxListeners = defaultMaxListeners;
}
exports.EventEmitter = EventEmitter;
@@ -161,11 +164,7 @@ EventEmitter.prototype.addListener = function(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;
- }
+ m = this._maxListeners;
if (m && m > 0 && this._events[type].length > m) {
this._events[type].warned = true;