}
}
+function emitMany(handler, isFn, self, args) {
+ if (isFn)
+ handler.apply(self, args);
+ else {
+ var len = handler.length;
+ var listeners = arrayClone(handler, len);
+ for (var i = 0; i < len; ++i)
+ listeners[i].apply(self, args);
+ }
+}
+
EventEmitter.prototype.emit = function emit(type) {
- var er, handler, len, args, i, listeners, events, domain;
+ var er, handler, len, args, i, events, domain;
var needDomainExit = false;
events = this._events;
args = new Array(len - 1);
for (i = 1; i < len; i++)
args[i - 1] = arguments[i];
- if (isFn)
- handler.apply(this, args);
- else {
- len = handler.length;
- listeners = arrayClone(handler, len);
- for (i = 0; i < len; ++i)
- listeners[i].apply(this, args);
- }
+ emitMany(handler, isFn, this, args);
}
if (needDomainExit)