diff options
author | Anatoli Papirovski <apapirovski@mac.com> | 2018-05-01 13:32:10 +0200 |
---|---|---|
committer | Anatoli Papirovski <apapirovski@mac.com> | 2018-05-03 14:45:09 +0200 |
commit | fe8794560a22cc62a482bf071e2050ce1ea6ea3e (patch) | |
tree | 385772d3828d99e14d805c1aa3196ccebc4e1c78 /lib | |
parent | 2553377d118f8762bbb665936e4ce41eb84bf3bb (diff) | |
download | android-node-v8-fe8794560a22cc62a482bf071e2050ce1ea6ea3e.tar.gz android-node-v8-fe8794560a22cc62a482bf071e2050ce1ea6ea3e.tar.bz2 android-node-v8-fe8794560a22cc62a482bf071e2050ce1ea6ea3e.zip |
events: optimize condition for optimal scenario
Instead of always checking whether we've already warned about a
possible EventEmitter memory leak, first run the rest of the
code as accessing random properties on an Array is expensive.
In addition, remove an unnecessary truthy check.
PR-URL: https://github.com/nodejs/node/pull/20452
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Tobias Nießen <tniessen@tnie.de>
Reviewed-By: Trivikram Kamat <trivikr.dev@gmail.com>
Diffstat (limited to 'lib')
-rw-r--r-- | lib/events.js | 30 |
1 files changed, 14 insertions, 16 deletions
diff --git a/lib/events.js b/lib/events.js index 46d1223e69..ff1648d6aa 100644 --- a/lib/events.js +++ b/lib/events.js @@ -235,22 +235,20 @@ function _addListener(target, type, listener, prepend) { } // Check for listener leak - if (!existing.warned) { - m = $getMaxListeners(target); - if (m && m > 0 && existing.length > m) { - existing.warned = true; - // No error code for this since it is a Warning - // eslint-disable-next-line no-restricted-syntax - const 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; - process.emitWarning(w); - } + 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 + const 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; + process.emitWarning(w); } } |