Skip to content

Commit 667195e

Browse files
mscdexcodebytere
authored andcommitted
events: improve listeners() performance
PR-URL: #33863 Reviewed-By: Robert Nagy <[email protected]> Reviewed-By: Anna Henningsen <[email protected]> Reviewed-By: Gerhard Stöbich <[email protected]> Reviewed-By: Luigi Pinca <[email protected]> Reviewed-By: James M Snell <[email protected]> Reviewed-By: Yongsheng Zhang <[email protected]>
1 parent e924439 commit 667195e

File tree

2 files changed

+5
-4
lines changed

2 files changed

+5
-4
lines changed

benchmark/events/ee-listeners.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ function main({ n, listeners, raw }) {
1414

1515
for (let k = 0; k < listeners; k += 1) {
1616
ee.on('dummy0', () => {});
17-
ee.on('dummy1', () => {});
17+
ee.once('dummy1', () => {});
1818
}
1919

2020
if (raw === 'true') {

lib/events.js

+4-3
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,6 @@
2222
'use strict';
2323

2424
const {
25-
Array,
2625
Boolean,
2726
Error,
2827
MathMin,
@@ -613,9 +612,11 @@ function arrayClone(arr) {
613612
}
614613

615614
function unwrapListeners(arr) {
616-
const ret = new Array(arr.length);
615+
const ret = arrayClone(arr);
617616
for (let i = 0; i < ret.length; ++i) {
618-
ret[i] = arr[i].listener || arr[i];
617+
const orig = ret[i].listener;
618+
if (typeof orig === 'function')
619+
ret[i] = orig;
619620
}
620621
return ret;
621622
}

0 commit comments

Comments
 (0)