diff options
author | Brian White <mscdex@mscdex.net> | 2019-08-25 04:21:33 -0400 |
---|---|---|
committer | zhangyongsheng <zhangyongsheng@youzan.com> | 2019-08-27 20:06:09 +0800 |
commit | 5ba3a2c4b6dfb928a097b36523d59cd5fa70706b (patch) | |
tree | b8962b5bf35dc271b144583576c0011a1a381b68 /lib/events.js | |
parent | f96f9fbe31f30d2effe3cd3a74c19a05360757a5 (diff) | |
download | android-node-v8-5ba3a2c4b6dfb928a097b36523d59cd5fa70706b.tar.gz android-node-v8-5ba3a2c4b6dfb928a097b36523d59cd5fa70706b.tar.bz2 android-node-v8-5ba3a2c4b6dfb928a097b36523d59cd5fa70706b.zip |
events: improve once() performance
PR-URL: https://github.com/nodejs/node/pull/29307
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Trivikram Kamat <trivikr.dev@gmail.com>
Reviewed-By: Yongsheng Zhang <zyszys98@gmail.com>
Diffstat (limited to 'lib/events.js')
-rw-r--r-- | lib/events.js | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/lib/events.js b/lib/events.js index ae847dc234..ebde85c6dd 100644 --- a/lib/events.js +++ b/lib/events.js @@ -290,11 +290,13 @@ EventEmitter.prototype.prependListener = return _addListener(this, type, listener, true); }; -function onceWrapper(...args) { +function onceWrapper() { if (!this.fired) { this.target.removeListener(this.type, this.wrapFn); this.fired = true; - return Reflect.apply(this.listener, this.target, args); + if (arguments.length === 0) + return this.listener.call(this.target); + return this.listener.apply(this.target, arguments); } } |