eventemitter3
Advanced tools
Comparing version 0.0.0 to 0.0.1
@@ -40,5 +40,9 @@ 'use strict'; | ||
ee1.listeners('foo'); | ||
}).add('EventEmitter 2', function test2() { | ||
ee2.on('foo', handle); | ||
ee2.listeners('foo'); | ||
// | ||
// // EE2 doesn't correctly handle listeners as they can be removed by doing a | ||
// // ee2.listeners('foo').length = 0; kills the event emitter | ||
// }).add('EventEmitter 2', function test2() { | ||
// ee2.on('foo', handle); | ||
// ee2.listeners('foo'); | ||
// | ||
}).add('EventEmitter 3', function test2() { | ||
@@ -45,0 +49,0 @@ ee3.on('foo', handle); |
28
index.js
@@ -33,3 +33,3 @@ 'use strict'; | ||
EventEmitter.prototype.emit = function emit(event, a1, a2, a3, a4, a5) { | ||
if (!this._events[event]) return false; | ||
if (!this._events || !this._events[event]) return false; | ||
@@ -71,2 +71,4 @@ var listeners = this._events[event] | ||
} | ||
if (handler.once) this.removeListener(event, handler); | ||
} else { | ||
@@ -79,2 +81,3 @@ for (i = 1, args = new Array(len -1); i < len; i++) { | ||
listeners[i].apply(this, args); | ||
if (listeners[i].once) this.removeListener(event, handler[i]); | ||
} | ||
@@ -94,2 +97,3 @@ } | ||
EventEmitter.prototype.on = function on(event, fn) { | ||
if (!this._events) this._events = {}; | ||
if (!this._events[event]) this._events[event] = []; | ||
@@ -109,11 +113,4 @@ this._events[event].push(fn); | ||
EventEmitter.prototype.once = function once(event, fn) { | ||
var ee = this; | ||
function eject() { | ||
ee.removeListener(event, eject); | ||
fn.apply(ee, arguments); | ||
} | ||
eject.fn = fn; | ||
return ee.on(event, eject); | ||
fn.once = true; | ||
return this.on(event, fn); | ||
}; | ||
@@ -135,3 +132,3 @@ | ||
for (var i = 0, length = listeners.length; i < length; i++) { | ||
if (!(!fn || listeners[i] === fn || listeners[i].fn === fn)) { | ||
if (fn && listeners[i] !== fn && listeners[i].fn !== fn) { | ||
events.push(listeners[i]); | ||
@@ -157,2 +154,4 @@ } | ||
EventEmitter.prototype.removeAllListeners = function removeAllListeners(event) { | ||
if (!this._events) return this; | ||
if (event) this._events[event] = null; | ||
@@ -171,2 +170,9 @@ else this._events = {}; | ||
// | ||
// This function doesn't apply anymore. | ||
// | ||
EventEmitter.prototype.setMaxListeners = function setMaxListeners() { | ||
return this; | ||
}; | ||
// | ||
// Expose the module. | ||
@@ -173,0 +179,0 @@ // |
{ | ||
"name": "eventemitter3", | ||
"version": "0.0.0", | ||
"version": "0.0.1", | ||
"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.", | ||
@@ -5,0 +5,0 @@ "main": "index.js", |
@@ -178,2 +178,24 @@ 'use strict'; | ||
}); | ||
it('inherits when used with require(util).inherits', function () { | ||
function Beast() { | ||
/* rawr, i'm a beast */ | ||
} | ||
require('util').inherits(Beast, EventEmitter); | ||
var moop = new Beast() | ||
, meap = new Beast(); | ||
expect(moop).to.be.instanceOf(Beast); | ||
expect(moop).to.be.instanceof(EventEmitter); | ||
moop.on('data', function () { | ||
throw new Error('I should not emit'); | ||
}); | ||
meap.emit('data', 'rawr'); | ||
meap.removeListener('foo'); | ||
meap.removeAllListeners(); | ||
}); | ||
}); |
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
Environment variable access
Supply chain riskPackage accesses environment variables, which may be a sign of credential stuffing or data theft.
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
512314
73
8554
11