Skip to content

Commit

Permalink
events: extract listener check as a function
Browse files Browse the repository at this point in the history
PR-URL: #24303
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de>
Reviewed-By: Denys Otrishko <shishugi@gmail.com>
Reviewed-By: Franziska Hinkelmann <franziska.hinkelmann@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
  • Loading branch information
ZYSzys authored and targos committed Nov 19, 2018
1 parent 9cd7c1c commit 6b93582
Showing 1 changed file with 13 additions and 16 deletions.
29 changes: 13 additions & 16 deletions lib/events.js
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,13 @@ function lazyErrors() {
return errors;
}

function checkListener(listener) {
if (typeof listener !== 'function') {
const errors = lazyErrors();
throw new errors.ERR_INVALID_ARG_TYPE('listener', 'Function', listener);
}
}

Object.defineProperty(EventEmitter, 'defaultMaxListeners', {
enumerable: true,
get: function() {
Expand Down Expand Up @@ -195,10 +202,7 @@ function _addListener(target, type, listener, prepend) {
var events;
var existing;

if (typeof listener !== 'function') {
const errors = lazyErrors();
throw new errors.ERR_INVALID_ARG_TYPE('listener', 'Function', listener);
}
checkListener(listener);

events = target._events;
if (events === undefined) {
Expand Down Expand Up @@ -283,20 +287,16 @@ function _onceWrap(target, type, listener) {
}

EventEmitter.prototype.once = function once(type, listener) {
if (typeof listener !== 'function') {
const errors = lazyErrors();
throw new errors.ERR_INVALID_ARG_TYPE('listener', 'Function', listener);
}
checkListener(listener);

this.on(type, _onceWrap(this, type, listener));
return this;
};

EventEmitter.prototype.prependOnceListener =
function prependOnceListener(type, listener) {
if (typeof listener !== 'function') {
const errors = lazyErrors();
throw new errors.ERR_INVALID_ARG_TYPE('listener', 'Function', listener);
}
checkListener(listener);

this.prependListener(type, _onceWrap(this, type, listener));
return this;
};
Expand All @@ -306,10 +306,7 @@ EventEmitter.prototype.removeListener =
function removeListener(type, listener) {
var list, events, position, i, originalListener;

if (typeof listener !== 'function') {
const errors = lazyErrors();
throw new errors.ERR_INVALID_ARG_TYPE('listener', 'Function', listener);
}
checkListener(listener);

events = this._events;
if (events === undefined)
Expand Down

0 comments on commit 6b93582

Please sign in to comment.