events: emit cleanup
Cleanup check logic. Place vars at top. Remove PROCESS.
This commit is contained in:
parent
1ccc6fbe05
commit
e1ac2ef7cf
@ -50,43 +50,38 @@ EventEmitter.prototype.setMaxListeners = function(n) {
|
||||
this._maxListeners = n;
|
||||
};
|
||||
|
||||
// non-global reference, for speed.
|
||||
var PROCESS;
|
||||
|
||||
EventEmitter.prototype.emit = function(type) {
|
||||
var er, handler, len, args, i, listeners;
|
||||
|
||||
// If there is no 'error' event listener then throw.
|
||||
if (type === 'error') {
|
||||
if (!this._events.error ||
|
||||
(typeof this._events.error === 'object' &&
|
||||
!this._events.error.length)) {
|
||||
er = arguments[1];
|
||||
if (this.domain) {
|
||||
var er = arguments[1];
|
||||
er.domainEmitter = this;
|
||||
er.domain = this.domain;
|
||||
er.domainThrown = false;
|
||||
this.domain.emit('error', er);
|
||||
return false;
|
||||
}
|
||||
|
||||
if (arguments[1] instanceof Error) {
|
||||
throw arguments[1]; // Unhandled 'error' event
|
||||
} else if (er instanceof Error) {
|
||||
throw er; // Unhandled 'error' event
|
||||
} else {
|
||||
throw TypeError("Uncaught, unspecified 'error' event.");
|
||||
throw TypeError('Uncaught, unspecified "error" event.');
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
var handler = this._events[type];
|
||||
if (!handler) return false;
|
||||
handler = this._events[type];
|
||||
|
||||
if (typeof handler === 'undefined')
|
||||
return false;
|
||||
|
||||
if (this.domain && this !== process)
|
||||
this.domain.enter();
|
||||
|
||||
if (typeof handler == 'function') {
|
||||
if (this.domain) {
|
||||
PROCESS = PROCESS || process;
|
||||
if (this !== PROCESS) {
|
||||
this.domain.enter();
|
||||
}
|
||||
}
|
||||
switch (arguments.length) {
|
||||
// fast cases
|
||||
case 1:
|
||||
@ -100,39 +95,28 @@ EventEmitter.prototype.emit = function(type) {
|
||||
break;
|
||||
// slower
|
||||
default:
|
||||
var l = arguments.length;
|
||||
var args = new Array(l - 1);
|
||||
for (var i = 1; i < l; i++) args[i - 1] = arguments[i];
|
||||
len = arguments.length;
|
||||
args = new Array(len - 1);
|
||||
for (i = 1; i < len; i++)
|
||||
args[i - 1] = arguments[i];
|
||||
handler.apply(this, args);
|
||||
}
|
||||
if (this.domain && this !== PROCESS) {
|
||||
this.domain.exit();
|
||||
}
|
||||
return true;
|
||||
|
||||
} else if (typeof handler === 'object') {
|
||||
if (this.domain) {
|
||||
PROCESS = PROCESS || process;
|
||||
if (this !== PROCESS) {
|
||||
this.domain.enter();
|
||||
}
|
||||
}
|
||||
var l = arguments.length;
|
||||
var args = new Array(l - 1);
|
||||
for (var i = 1; i < l; i++) args[i - 1] = arguments[i];
|
||||
len = arguments.length;
|
||||
args = new Array(len - 1);
|
||||
for (i = 1; i < len; i++)
|
||||
args[i - 1] = arguments[i];
|
||||
|
||||
var listeners = handler.slice();
|
||||
for (var i = 0, l = listeners.length; i < l; i++) {
|
||||
listeners = handler.slice();
|
||||
len = listeners.length;
|
||||
for (i = 0; i < len; i++)
|
||||
listeners[i].apply(this, args);
|
||||
}
|
||||
if (this.domain && this !== PROCESS) {
|
||||
this.domain.exit();
|
||||
}
|
||||
return true;
|
||||
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (this.domain && this !== process)
|
||||
this.domain.exit();
|
||||
|
||||
return true;
|
||||
};
|
||||
|
||||
EventEmitter.prototype.addListener = function(type, listener) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user