eventemitter3
Advanced tools
Comparing version 0.1.3 to 0.1.4
'use strict'; | ||
return; | ||
/** | ||
@@ -36,2 +34,8 @@ * Benchmark related modules. | ||
for (var i = 0; i < 25; i++) { | ||
ee1.on('event', handle); | ||
ee3.on('event', handle); | ||
master.on('event', handle); | ||
} | ||
// | ||
@@ -46,9 +50,6 @@ // EE2 doesn't correctly handle listeners as they can be removed by doing a | ||
).add('EventEmitter 1', function test1() { | ||
ee1.on('foo', handle); | ||
ee1.listeners('foo'); | ||
}).add('EventEmitter 3', function test2() { | ||
ee3.on('foo', handle); | ||
ee3.listeners('foo'); | ||
}).add('EventEmitter 3 (master)', function test2() { | ||
master.on('foo', handle); | ||
master.listeners('foo'); | ||
@@ -55,0 +56,0 @@ }).on('cycle', function cycle(e) { |
36
index.js
@@ -11,6 +11,13 @@ 'use strict'; | ||
function EventEmitter() { | ||
this._events = {}; | ||
} | ||
/** | ||
* Holds the assigned EventEmitters by name. | ||
* | ||
* @type {Object} | ||
* @private | ||
*/ | ||
EventEmitter.prototype._events = undefined; | ||
/** | ||
* Return a list of assigned event listeners. | ||
@@ -23,2 +30,3 @@ * | ||
EventEmitter.prototype.listeners = function listeners(event) { | ||
if (!this._events) return []; | ||
return Array.apply(this, this._events[event] || []); | ||
@@ -42,3 +50,3 @@ }; | ||
, args | ||
, i; | ||
, i, j; | ||
@@ -63,9 +71,16 @@ if (1 === length) { | ||
} else { | ||
for (i = 1, args = new Array(len -1); i < len; i++) { | ||
args[i - 1] = arguments[i]; | ||
} | ||
for (i = 0; i < length; i++) { | ||
if (listeners[i].__EE3_once) this.removeListener(event, listeners[i]); | ||
for (i = 0; i < length; fn = listeners[++i]) { | ||
if (fn.__EE3_once) this.removeListener(event, fn); | ||
fn.apply(fn.__EE3_context, args); | ||
switch (len) { | ||
case 1: listeners[i].call(fn.__EE3_context); break; | ||
case 2: listeners[i].call(fn.__EE3_context, a1); break; | ||
case 3: listeners[i].call(fn.__EE3_context, a1, a2); break; | ||
default: | ||
if (!args) for (j = 1, args = new Array(len -1); j < len; j++) { | ||
args[j - 1] = arguments[j]; | ||
} | ||
listeners[i].apply(fn.__EE3_context, args); | ||
} | ||
} | ||
@@ -171,3 +186,4 @@ } | ||
try { module.exports = EventEmitter; } | ||
catch (e) {} | ||
if ('object' === typeof module && module.exports) { | ||
module.exports = EventEmitter; | ||
} |
{ | ||
"name": "eventemitter3", | ||
"version": "0.1.3", | ||
"version": "0.1.4", | ||
"description": "EventEmitter3 focuses on performance while maintaining a Node.js AND browser compatible interface. This the source of the same EventEmitter that is used in Primus.", | ||
@@ -18,10 +18,13 @@ "main": "index.js", | ||
"Events", | ||
"reactor", | ||
"addEventListener", | ||
"addListener", | ||
"emit", | ||
"emits", | ||
"emitter", | ||
"event", | ||
"once", | ||
"pub/sub", | ||
"publish", | ||
"subscribe", | ||
"event", | ||
"emitter", | ||
"addListener", | ||
"addEventListener" | ||
"reactor", | ||
"subscribe" | ||
], | ||
@@ -28,0 +31,0 @@ "author": "Arnout Kazemier", |
@@ -260,2 +260,5 @@ 'use strict'; | ||
moop.listeners(); | ||
meap.listeners(); | ||
moop.on('data', function () { | ||
@@ -262,0 +265,0 @@ throw new Error('I should not emit'); |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
35901
21
950