From fd166a8759517b89e295d0076c5b7d13cdadc23d Mon Sep 17 00:00:00 2001 From: Anatoli Papirovski Date: Sat, 14 Oct 2017 21:40:51 -0400 Subject: [PATCH] events: return values directly in listeners Each conditional branch in EventEmitter.prototype.listeners assigns its return value to a variable ret which is returned at the end. Instead just return from within each branch. This is both clearer and more performant. events/ee-listeners.js n=5000000 3.65 % *** 3.359171e-10 PR-URL: https://github.com/nodejs/node/pull/16212 Reviewed-By: Luigi Pinca Reviewed-By: Ruben Bridgewater Reviewed-By: James M Snell Reviewed-By: Refael Ackermann --- lib/events.js | 24 ++++++++++-------------- 1 file changed, 10 insertions(+), 14 deletions(-) diff --git a/lib/events.js b/lib/events.js index 8ee587e87c5..bd6a3686618 100644 --- a/lib/events.js +++ b/lib/events.js @@ -481,23 +481,19 @@ EventEmitter.prototype.removeAllListeners = }; EventEmitter.prototype.listeners = function listeners(type) { - var evlistener; - var ret; - var events = this._events; + const events = this._events; if (events === undefined) - ret = []; - else { - evlistener = events[type]; - if (evlistener === undefined) - ret = []; - else if (typeof evlistener === 'function') - ret = [evlistener.listener || evlistener]; - else - ret = unwrapListeners(evlistener); - } + return []; - return ret; + const evlistener = events[type]; + if (evlistener === undefined) + return []; + + if (typeof evlistener === 'function') + return [evlistener.listener || evlistener]; + + return unwrapListeners(evlistener); }; EventEmitter.listenerCount = function(emitter, type) {