Socket
Socket
Sign inDemoInstall

events

Package Overview
Dependencies
0
Maintainers
3
Versions
17
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 2.1.0 to 3.0.0

.airtap.yml

371

events.js

@@ -22,14 +22,36 @@ // Copyright Joyent, Inc. and other Node contributors.

var objectCreate = Object.create || objectCreatePolyfill
var objectKeys = Object.keys || objectKeysPolyfill
var bind = Function.prototype.bind || functionBindPolyfill
'use strict';
function EventEmitter() {
if (!this._events || !Object.prototype.hasOwnProperty.call(this, '_events')) {
this._events = objectCreate(null);
this._eventsCount = 0;
var R = typeof Reflect === 'object' ? Reflect : null
var ReflectApply = R && typeof R.apply === 'function'
? R.apply
: function ReflectApply(target, receiver, args) {
return Function.prototype.apply.call(target, receiver, args);
}
this._maxListeners = this._maxListeners || undefined;
var ReflectOwnKeys
if (R && typeof R.ownKeys === 'function') {
ReflectOwnKeys = R.ownKeys
} else if (Object.getOwnPropertySymbols) {
ReflectOwnKeys = function ReflectOwnKeys(target) {
return Object.getOwnPropertyNames(target)
.concat(Object.getOwnPropertySymbols(target));
};
} else {
ReflectOwnKeys = function ReflectOwnKeys(target) {
return Object.getOwnPropertyNames(target);
};
}
function ProcessEmitWarning(warning) {
if (console && console.warn) console.warn(warning);
}
var NumberIsNaN = Number.isNaN || function NumberIsNaN(value) {
return value !== value;
}
function EventEmitter() {
EventEmitter.init.call(this);
}
module.exports = EventEmitter;

@@ -41,2 +63,3 @@

EventEmitter.prototype._events = undefined;
EventEmitter.prototype._eventsCount = 0;
EventEmitter.prototype._maxListeners = undefined;

@@ -48,31 +71,32 @@

var hasDefineProperty;
try {
var o = {};
if (Object.defineProperty) Object.defineProperty(o, 'x', { value: 0 });
hasDefineProperty = o.x === 0;
} catch (err) { hasDefineProperty = false }
if (hasDefineProperty) {
Object.defineProperty(EventEmitter, 'defaultMaxListeners', {
enumerable: true,
get: function() {
return defaultMaxListeners;
},
set: function(arg) {
// check whether the input is a positive number (whose value is zero or
// greater and not a NaN).
if (typeof arg !== 'number' || arg < 0 || arg !== arg)
throw new TypeError('"defaultMaxListeners" must be a positive number');
defaultMaxListeners = arg;
Object.defineProperty(EventEmitter, 'defaultMaxListeners', {
enumerable: true,
get: function() {
return defaultMaxListeners;
},
set: function(arg) {
if (typeof arg !== 'number' || arg < 0 || NumberIsNaN(arg)) {
throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received ' + arg + '.');
}
});
} else {
EventEmitter.defaultMaxListeners = defaultMaxListeners;
}
defaultMaxListeners = arg;
}
});
EventEmitter.init = function() {
if (this._events === undefined ||
this._events === Object.getPrototypeOf(this)._events) {
this._events = Object.create(null);
this._eventsCount = 0;
}
this._maxListeners = this._maxListeners || undefined;
};
// Obviously not all Emitters should be limited to 10. This function allows
// that to be increased. Set to zero for unlimited.
EventEmitter.prototype.setMaxListeners = function setMaxListeners(n) {
if (typeof n !== 'number' || n < 0 || isNaN(n))
throw new TypeError('"n" argument must be a positive number');
if (typeof n !== 'number' || n < 0 || NumberIsNaN(n)) {
throw new RangeError('The value of "n" is out of range. It must be a non-negative number. Received ' + n + '.');
}
this._maxListeners = n;

@@ -92,66 +116,10 @@ return this;

// These standalone emit* functions are used to optimize calling of event
// handlers for fast cases because emit() itself often has a variable number of
// arguments and can be deoptimized because of that. These functions always have
// the same number of arguments and thus do not get deoptimized, so the code
// inside them can execute faster.
function emitNone(handler, isFn, self) {
if (isFn)
handler.call(self);
else {
var len = handler.length;
var listeners = arrayClone(handler, len);
for (var i = 0; i < len; ++i)
listeners[i].call(self);
}
}
function emitOne(handler, isFn, self, arg1) {
if (isFn)
handler.call(self, arg1);
else {
var len = handler.length;
var listeners = arrayClone(handler, len);
for (var i = 0; i < len; ++i)
listeners[i].call(self, arg1);
}
}
function emitTwo(handler, isFn, self, arg1, arg2) {
if (isFn)
handler.call(self, arg1, arg2);
else {
var len = handler.length;
var listeners = arrayClone(handler, len);
for (var i = 0; i < len; ++i)
listeners[i].call(self, arg1, arg2);
}
}
function emitThree(handler, isFn, self, arg1, arg2, arg3) {
if (isFn)
handler.call(self, arg1, arg2, arg3);
else {
var len = handler.length;
var listeners = arrayClone(handler, len);
for (var i = 0; i < len; ++i)
listeners[i].call(self, arg1, arg2, arg3);
}
}
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, events;
var args = [];
for (var i = 1; i < arguments.length; i++) args.push(arguments[i]);
var doError = (type === 'error');
events = this._events;
if (events)
doError = (doError && events.error == null);
var events = this._events;
if (events !== undefined)
doError = (doError && events.error === undefined);
else if (!doError)

@@ -162,42 +130,28 @@ return false;

if (doError) {
if (arguments.length > 1)
er = arguments[1];
var er;
if (args.length > 0)
er = args[0];
if (er instanceof Error) {
// Note: The comments on the `throw` lines are intentional, they show
// up in Node's output if this results in an unhandled exception.
throw er; // Unhandled 'error' event
} else {
// At least give some kind of context to the user
var err = new Error('Unhandled "error" event. (' + er + ')');
err.context = er;
throw err;
}
return false;
// At least give some kind of context to the user
var err = new Error('Unhandled error.' + (er ? ' (' + er.message + ')' : ''));
err.context = er;
throw err; // Unhandled 'error' event
}
handler = events[type];
var handler = events[type];
if (!handler)
if (handler === undefined)
return false;
var isFn = typeof handler === 'function';
len = arguments.length;
switch (len) {
// fast cases
case 1:
emitNone(handler, isFn, this);
break;
case 2:
emitOne(handler, isFn, this, arguments[1]);
break;
case 3:
emitTwo(handler, isFn, this, arguments[1], arguments[2]);
break;
case 4:
emitThree(handler, isFn, this, arguments[1], arguments[2], arguments[3]);
break;
// slower
default:
args = new Array(len - 1);
for (i = 1; i < len; i++)
args[i - 1] = arguments[i];
emitMany(handler, isFn, this, args);
if (typeof handler === 'function') {
ReflectApply(handler, this, args);
} else {
var len = handler.length;
var listeners = arrayClone(handler, len);
for (var i = 0; i < len; ++i)
ReflectApply(listeners[i], this, args);
}

@@ -213,8 +167,9 @@

if (typeof listener !== 'function')
throw new TypeError('"listener" argument must be a function');
if (typeof listener !== 'function') {
throw new TypeError('The "listener" argument must be of type Function. Received type ' + typeof listener);
}
events = target._events;
if (!events) {
events = target._events = objectCreate(null);
if (events === undefined) {
events = target._events = Object.create(null);
target._eventsCount = 0;

@@ -224,5 +179,5 @@ } else {

// adding it to the listeners, first emit "newListener".
if (events.newListener) {
if (events.newListener !== undefined) {
target.emit('newListener', type,
listener.listener ? listener.listener : listener);
listener.listener ? listener.listener : listener);

@@ -236,3 +191,3 @@ // Re-assign `events` because a newListener handler could have caused the

if (!existing) {
if (existing === undefined) {
// Optimize the case of one listener. Don't need the extra array object.

@@ -245,29 +200,25 @@ existing = events[type] = listener;

existing = events[type] =
prepend ? [listener, existing] : [existing, listener];
prepend ? [listener, existing] : [existing, listener];
// If we've already got an array, just append.
} else if (prepend) {
existing.unshift(listener);
} else {
// If we've already got an array, just append.
if (prepend) {
existing.unshift(listener);
} else {
existing.push(listener);
}
existing.push(listener);
}
// Check for listener leak
if (!existing.warned) {
m = $getMaxListeners(target);
if (m && m > 0 && existing.length > m) {
existing.warned = true;
var w = new Error('Possible EventEmitter memory leak detected. ' +
existing.length + ' "' + String(type) + '" listeners ' +
'added. Use emitter.setMaxListeners() to ' +
'increase limit.');
w.name = 'MaxListenersExceededWarning';
w.emitter = target;
w.type = type;
w.count = existing.length;
if (typeof console === 'object' && console.warn) {
console.warn('%s: %s', w.name, w.message);
}
}
m = $getMaxListeners(target);
if (m > 0 && existing.length > m && !existing.warned) {
existing.warned = true;
// No error code for this since it is a Warning
// eslint-disable-next-line no-restricted-syntax
var w = new Error('Possible EventEmitter memory leak detected. ' +
existing.length + ' ' + String(type) + ' listeners ' +
'added. Use emitter.setMaxListeners() to ' +
'increase limit');
w.name = 'MaxListenersExceededWarning';
w.emitter = target;
w.type = type;
w.count = existing.length;
ProcessEmitWarning(w);
}

@@ -291,21 +242,8 @@ }

function onceWrapper() {
var args = [];
for (var i = 0; i < arguments.length; i++) args.push(arguments[i]);
if (!this.fired) {
this.target.removeListener(this.type, this.wrapFn);
this.fired = true;
switch (arguments.length) {
case 0:
return this.listener.call(this.target);
case 1:
return this.listener.call(this.target, arguments[0]);
case 2:
return this.listener.call(this.target, arguments[0], arguments[1]);
case 3:
return this.listener.call(this.target, arguments[0], arguments[1],
arguments[2]);
default:
var args = new Array(arguments.length);
for (var i = 0; i < args.length; ++i)
args[i] = arguments[i];
this.listener.apply(this.target, args);
}
ReflectApply(this.listener, this.target, args);
}

@@ -316,3 +254,3 @@ }

var state = { fired: false, wrapFn: undefined, target: target, type: type, listener: listener };
var wrapped = bind.call(onceWrapper, state);
var wrapped = onceWrapper.bind(state);
wrapped.listener = listener;

@@ -324,4 +262,5 @@ state.wrapFn = wrapped;

EventEmitter.prototype.once = function once(type, listener) {
if (typeof listener !== 'function')
throw new TypeError('"listener" argument must be a function');
if (typeof listener !== 'function') {
throw new TypeError('The "listener" argument must be of type Function. Received type ' + typeof listener);
}
this.on(type, _onceWrap(this, type, listener));

@@ -333,4 +272,5 @@ return this;

function prependOnceListener(type, listener) {
if (typeof listener !== 'function')
throw new TypeError('"listener" argument must be a function');
if (typeof listener !== 'function') {
throw new TypeError('The "listener" argument must be of type Function. Received type ' + typeof listener);
}
this.prependListener(type, _onceWrap(this, type, listener));

@@ -345,11 +285,12 @@ return this;

if (typeof listener !== 'function')
throw new TypeError('"listener" argument must be a function');
if (typeof listener !== 'function') {
throw new TypeError('The "listener" argument must be of type Function. Received type ' + typeof listener);
}
events = this._events;
if (!events)
if (events === undefined)
return this;
list = events[type];
if (!list)
if (list === undefined)
return this;

@@ -359,3 +300,3 @@

if (--this._eventsCount === 0)
this._events = objectCreate(null);
this._events = Object.create(null);
else {

@@ -382,4 +323,5 @@ delete events[type];

list.shift();
else
else {
spliceOne(list, position);
}

@@ -389,3 +331,3 @@ if (list.length === 1)

if (events.removeListener)
if (events.removeListener !== undefined)
this.emit('removeListener', type, originalListener || listener);

@@ -397,2 +339,4 @@ }

EventEmitter.prototype.off = EventEmitter.prototype.removeListener;
EventEmitter.prototype.removeAllListeners =

@@ -403,13 +347,13 @@ function removeAllListeners(type) {

events = this._events;
if (!events)
if (events === undefined)
return this;
// not listening for removeListener, no need to emit
if (!events.removeListener) {
if (events.removeListener === undefined) {
if (arguments.length === 0) {
this._events = objectCreate(null);
this._events = Object.create(null);
this._eventsCount = 0;
} else if (events[type]) {
} else if (events[type] !== undefined) {
if (--this._eventsCount === 0)
this._events = objectCreate(null);
this._events = Object.create(null);
else

@@ -423,3 +367,3 @@ delete events[type];

if (arguments.length === 0) {
var keys = objectKeys(events);
var keys = Object.keys(events);
var key;

@@ -432,3 +376,3 @@ for (i = 0; i < keys.length; ++i) {

this.removeAllListeners('removeListener');
this._events = objectCreate(null);
this._events = Object.create(null);
this._eventsCount = 0;

@@ -442,3 +386,3 @@ return this;

this.removeListener(type, listeners);
} else if (listeners) {
} else if (listeners !== undefined) {
// LIFO order

@@ -456,7 +400,7 @@ for (i = listeners.length - 1; i >= 0; i--) {

if (!events)
if (events === undefined)
return [];
var evlistener = events[type];
if (!evlistener)
if (evlistener === undefined)
return [];

@@ -467,3 +411,4 @@

return unwrap ? unwrapListeners(evlistener) : arrayClone(evlistener, evlistener.length);
return unwrap ?
unwrapListeners(evlistener) : arrayClone(evlistener, evlistener.length);
}

@@ -491,3 +436,3 @@

if (events) {
if (events !== undefined) {
var evlistener = events[type];

@@ -497,3 +442,3 @@

return 1;
} else if (evlistener) {
} else if (evlistener !== undefined) {
return evlistener.length;

@@ -507,12 +452,5 @@ }

EventEmitter.prototype.eventNames = function eventNames() {
return this._eventsCount > 0 ? Reflect.ownKeys(this._events) : [];
return this._eventsCount > 0 ? ReflectOwnKeys(this._events) : [];
};
// About 1.5x faster than the two-arg version of Array#splice().
function spliceOne(list, index) {
for (var i = index, k = i + 1, n = list.length; k < n; i += 1, k += 1)
list[i] = list[k];
list.pop();
}
function arrayClone(arr, n) {

@@ -525,2 +463,8 @@ var copy = new Array(n);

function spliceOne(list, index) {
for (; index + 1 < list.length; index++)
list[index] = list[index + 1];
list.pop();
}
function unwrapListeners(arr) {

@@ -533,20 +477,1 @@ var ret = new Array(arr.length);

}
function objectCreatePolyfill(proto) {
var F = function() {};
F.prototype = proto;
return new F;
}
function objectKeysPolyfill(obj) {
var keys = [];
for (var k in obj) if (Object.prototype.hasOwnProperty.call(obj, k)) {
keys.push(k);
}
return k;
}
function functionBindPolyfill(context) {
var fn = this;
return function () {
return fn.apply(context, arguments);
};
}

@@ -0,1 +1,13 @@

# 3.0.0 (2018-05-25)
**This version drops support for IE8.** `events` no longer includes polyfills
for ES5 features. If you need to support older environments, use an ES5 shim
like [es5-shim](https://npmjs.com/package/es5-shim). Both the shim and sham
versions of es5-shim are necessary.
- Update to events code from Node.js 10.x
- (semver major) Adds `off()` method
- Port more tests from Node.js
- Switch browser tests to airtap, making things more reliable
# 2.1.0 (2018-05-25)

@@ -2,0 +14,0 @@

{
"name": "events",
"id": "events",
"version": "2.1.0",
"version": "3.0.0",
"description": "Node's event emitter for all engines.",

@@ -23,15 +23,14 @@ "keywords": [

"engines": {
"node": ">=0.4.x"
"node": ">=0.8.x"
},
"devDependencies": {
"airtap": "0.0.6",
"isarray": "^2.0.2",
"mocha": "^3.5.3",
"object-keys": "^1.0.11",
"zuul": "^3.11.1"
"tape": "^4.8.0"
},
"scripts": {
"test": "mocha --ui qunit -- tests/index.js",
"test:browsers": "zuul -- tests/index.js"
"test": "node tests/index.js",
"test:browsers": "airtap -- tests/index.js"
},
"license": "MIT"
}

@@ -1,9 +0,19 @@

# Status: [Maintainer Needed](https://github.com/Gozala/events/issues/43)
# events [![Build Status](https://travis-ci.org/Gozala/events.png?branch=master)](https://travis-ci.org/Gozala/events)
Node's event emitter for all engines.
> Node's event emitter for all engines.
## Install ##
This implements the Node.js [`events`](http://nodejs.org/api/events.html) module for environments that do not have it, like browsers.
> `events` currently matches the **Node.js 10.1** API.
Note that the `events` module uses ES5 features. If you need to support very old browsers like IE8, use a shim like [`es5-shim`](https://www.npmjs.com/package/es5-shim). You need both the shim and the sham versions of `es5-shim`.
This module is maintained, but only by very few people. If you'd like to help, let us know in the [Maintainer Needed](https://github.com/Gozala/events/issues/43) issue!
## Install
You usually do not have to install `events` yourself! If your code runs in Node.js, `events` is built in. If your code runs in the browser, bundlers like [browserify](https://github.com/browserify/browserify) or [webpack](https://github.com/webpack/webpack) also include the `events` module.
But if none of those apply, with npm do:
```

@@ -13,10 +23,27 @@ npm install events

## Require ##
## Usage
```javascript
var EventEmitter = require('events')
var ee = new EventEmitter()
ee.on('message', function (text) {
console.log(text)
})
ee.emit('message', 'hello world')
```
## Usage ##
## API
See the [node.js event emitter docs](http://nodejs.org/api/events.html)
See the [Node.js EventEmitter docs](http://nodejs.org/api/events.html). `events` currently matches the Node.js 10.1 API.
## Contributing
PRs are very welcome! The main way to contribute to `events` is by porting features, bugfixes and tests from Node.js. Ideally, code contributions to this module are copy-pasted from Node.js and transpiled to ES5, rather than reimplemented from scratch. Matching the Node.js code as closely as possible makes maintenance simpler when new changes land in Node.js.
This module intends to provide exactly the same API as Node.js, so features that are not available in the core `events` module will not be accepted. Feature requests should instead be directed at [nodejs/node](https://github.com/nodejs/node) and will be added to this module once they are implemented in Node.js.
If there is a difference in behaviour between Node.js's `events` module and this module, please open an issue!
## License
[MIT](./LICENSE)

@@ -111,2 +111,2 @@ // Copyright Joyent, Inc. and other Node contributors.

ee.on('foo', null);
}, /^TypeError: "listener" argument must be a function$/);
}, /^TypeError: The "listener" argument must be of type Function. Received type object$/);

@@ -26,2 +26,10 @@ // Copyright Joyent, Inc. and other Node contributors.

// Redirect warning output to tape.
var consoleWarn = console.warn;
console.warn = common.test.comment;
common.test.on('end', function () {
console.warn = consoleWarn;
});
// default

@@ -28,0 +36,0 @@ {

@@ -22,2 +22,3 @@ // Copyright Joyent, Inc. and other Node contributors.

var test = require('tape');
var assert = require('assert');

@@ -81,3 +82,3 @@

// add the exit listener only once to avoid listener leak warnings
if (mustCallChecks.length === 0) after(function() { runCallChecks(0); });
if (mustCallChecks.length === 0) test.onFinish(function() { runCallChecks(0); });

@@ -84,0 +85,0 @@ mustCallChecks.push(context);

@@ -0,3 +1,5 @@

var test = require('tape');
require('./legacy-compat');
var common = require('./common');

@@ -8,4 +10,9 @@ // we do this to easily wrap each file in a mocha test

var require = function(file) {
test(file, function() {
orig_require(file);
test(file, function(t) {
// Store the tape object so tests can access it.
t.on('end', function () { delete common.test; });
common.test = t;
try { orig_require(file); } catch (err) { t.fail(err); }
t.end();
});

@@ -16,2 +23,4 @@ };

require('./check-listener-leaks.js');
require('./errors.js');
require('./events-list.js');
require('./listener-count.js');

@@ -21,8 +30,22 @@ require('./listeners-side-effects.js');

require('./max-listeners.js');
if ((function A () {}).name === 'A') {
require('./method-names.js');
} else {
// Function.name is not supported in IE
test('./method-names.js', { skip: true }, function () {});
}
require('./modify-in-emit.js');
require('./num-args.js');
require('./once.js');
require('./prepend.js');
require('./set-max-listeners-side-effects.js');
require('./special-event-names.js');
require('./subclass.js');
if (typeof Symbol === 'function') {
require('./symbols.js');
} else {
// Symbol is not available.
test('./symbols.js', { skip: true }, function () {});
}
require('./remove-all-listeners.js');
require('./remove-listeners.js');

@@ -26,3 +26,2 @@ // Copyright Joyent, Inc. and other Node contributors.

var EventEmitter = require('../').EventEmitter;
var objectKeys = require('object-keys');

@@ -36,3 +35,3 @@ var e = new EventEmitter();

if (Object.create) assert.ok(!(e._events instanceof Object));
assert.strictEqual(objectKeys(e._events).length, 0);
assert.strictEqual(Object.keys(e._events).length, 0);

@@ -39,0 +38,0 @@ e.on('foo', assert.fail);

@@ -36,4 +36,4 @@ // Copyright Joyent, Inc. and other Node contributors.

var throwsObjs = [NaN, -1, 'and even this'];
var maxError = /^TypeError: "n" argument must be a positive number$/;
var defError = /^TypeError: "defaultMaxListeners" must be a positive number$/;
var maxError = /^RangeError: The value of "n" is out of range\. It must be a non-negative number\./;
var defError = /^RangeError: The value of "defaultMaxListeners" is out of range\. It must be a non-negative number\./;

@@ -40,0 +40,0 @@ for (var i = 0; i < throwsObjs.length; i++) {

@@ -26,9 +26,2 @@ // Copyright Joyent, Inc. and other Node contributors.

var after_checks = [];
after(function() {
for (var i = 0 ; i < after_checks.length ; ++i) {
after_checks[i]();
}
});
var e = new events.EventEmitter();

@@ -59,13 +52,11 @@ var num_args_emitted = [];

after_checks.push(function() {
assert.ok(Array.isArray(num_args_emitted));
assert.strictEqual(num_args_emitted.length, 8);
assert.strictEqual(num_args_emitted[0], 0);
assert.strictEqual(num_args_emitted[1], 1);
assert.strictEqual(num_args_emitted[2], 2);
assert.strictEqual(num_args_emitted[3], 3);
assert.strictEqual(num_args_emitted[4], 4);
assert.strictEqual(num_args_emitted[5], 5);
assert.strictEqual(num_args_emitted[6], 4);
assert.strictEqual(num_args_emitted[6], 4);
});
assert.ok(Array.isArray(num_args_emitted));
assert.strictEqual(num_args_emitted.length, 8);
assert.strictEqual(num_args_emitted[0], 0);
assert.strictEqual(num_args_emitted[1], 1);
assert.strictEqual(num_args_emitted[2], 2);
assert.strictEqual(num_args_emitted[3], 3);
assert.strictEqual(num_args_emitted[4], 4);
assert.strictEqual(num_args_emitted[5], 5);
assert.strictEqual(num_args_emitted[6], 4);
assert.strictEqual(num_args_emitted[6], 4);

@@ -56,3 +56,3 @@ // Copyright Joyent, Inc. and other Node contributors.

ee.once('foo', null);
}, /^TypeError: "listener" argument must be a function$/);
}, /^TypeError: The "listener" argument must be of type Function. Received type object$/);

@@ -59,0 +59,0 @@ {

@@ -25,13 +25,7 @@ // Copyright Joyent, Inc. and other Node contributors.

var events = require('../');
var test = require('tape');
var after_checks = [];
after(function() {
for (var i = 0 ; i < after_checks.length ; ++i) {
after_checks[i]();
}
});
function expect(expected) {
var actual = [];
after_checks.push(function() {
test.onFinish(function() {
var sortedActual = actual.sort();

@@ -38,0 +32,0 @@ var sortedExpected = expected.sort();

@@ -179,3 +179,3 @@ // Copyright Joyent, Inc. and other Node contributors.

ee.removeListener('foo', null);
}, /^TypeError: "listener" argument must be a function$/);
}, /^TypeError: The "listener" argument must be of type Function\. Received type object$/);

@@ -182,0 +182,0 @@ {

@@ -25,3 +25,2 @@ // Copyright Joyent, Inc. and other Node contributors.

var events = require('../');
var objectKeys = require('object-keys');

@@ -31,4 +30,4 @@ var e = new events.EventEmitter();

if (Object.create) assert.ok(!(e._events instanceof Object));
assert.strictEqual(objectKeys(e._events).length, 0);
assert.strictEqual(Object.keys(e._events).length, 0);
e.setMaxListeners(5);
assert.strictEqual(objectKeys(e._events).length, 0);
assert.strictEqual(Object.keys(e._events).length, 0);

@@ -23,14 +23,7 @@ // Copyright Joyent, Inc. and other Node contributors.

var common = require('./common');
var test = require('tape');
var assert = require('assert');
var EventEmitter = require('../').EventEmitter;
var util = require('util');
var objectKeys = require('object-keys');
var after_checks = [];
after(function() {
for (var i = 0 ; i < after_checks.length ; ++i) {
after_checks[i]();
}
});
util.inherits(MyEE, EventEmitter);

@@ -57,5 +50,5 @@

after_checks.push(function() {
if (Object.create) assert.ok(!(myee._events instanceof Object));
assert.strictEqual(objectKeys(myee._events).length, 0);
test.onFinish(function() {
assert.ok(!(myee._events instanceof Object));
assert.strictEqual(Object.keys(myee._events).length, 0);
});

@@ -62,0 +55,0 @@

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc