events: extract listener check as a function
PR-URL: https://github.com/nodejs/node/pull/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>
This commit is contained in:
parent
6b91c36103
commit
a3d9168293
@ -48,6 +48,13 @@ function lazyErrors() {
|
|||||||
return errors;
|
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', {
|
Object.defineProperty(EventEmitter, 'defaultMaxListeners', {
|
||||||
enumerable: true,
|
enumerable: true,
|
||||||
get: function() {
|
get: function() {
|
||||||
@ -195,10 +202,7 @@ function _addListener(target, type, listener, prepend) {
|
|||||||
var events;
|
var events;
|
||||||
var existing;
|
var existing;
|
||||||
|
|
||||||
if (typeof listener !== 'function') {
|
checkListener(listener);
|
||||||
const errors = lazyErrors();
|
|
||||||
throw new errors.ERR_INVALID_ARG_TYPE('listener', 'Function', listener);
|
|
||||||
}
|
|
||||||
|
|
||||||
events = target._events;
|
events = target._events;
|
||||||
if (events === undefined) {
|
if (events === undefined) {
|
||||||
@ -283,20 +287,16 @@ function _onceWrap(target, type, listener) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
EventEmitter.prototype.once = function once(type, listener) {
|
EventEmitter.prototype.once = function once(type, listener) {
|
||||||
if (typeof listener !== 'function') {
|
checkListener(listener);
|
||||||
const errors = lazyErrors();
|
|
||||||
throw new errors.ERR_INVALID_ARG_TYPE('listener', 'Function', listener);
|
|
||||||
}
|
|
||||||
this.on(type, _onceWrap(this, type, listener));
|
this.on(type, _onceWrap(this, type, listener));
|
||||||
return this;
|
return this;
|
||||||
};
|
};
|
||||||
|
|
||||||
EventEmitter.prototype.prependOnceListener =
|
EventEmitter.prototype.prependOnceListener =
|
||||||
function prependOnceListener(type, listener) {
|
function prependOnceListener(type, listener) {
|
||||||
if (typeof listener !== 'function') {
|
checkListener(listener);
|
||||||
const errors = lazyErrors();
|
|
||||||
throw new errors.ERR_INVALID_ARG_TYPE('listener', 'Function', listener);
|
|
||||||
}
|
|
||||||
this.prependListener(type, _onceWrap(this, type, listener));
|
this.prependListener(type, _onceWrap(this, type, listener));
|
||||||
return this;
|
return this;
|
||||||
};
|
};
|
||||||
@ -306,10 +306,7 @@ EventEmitter.prototype.removeListener =
|
|||||||
function removeListener(type, listener) {
|
function removeListener(type, listener) {
|
||||||
var list, events, position, i, originalListener;
|
var list, events, position, i, originalListener;
|
||||||
|
|
||||||
if (typeof listener !== 'function') {
|
checkListener(listener);
|
||||||
const errors = lazyErrors();
|
|
||||||
throw new errors.ERR_INVALID_ARG_TYPE('listener', 'Function', listener);
|
|
||||||
}
|
|
||||||
|
|
||||||
events = this._events;
|
events = this._events;
|
||||||
if (events === undefined)
|
if (events === undefined)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user