Skip to content

Commit ff7fbc3

Browse files
mscdexaddaleax
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 e4854de commit ff7fbc3

File tree

2 files changed

+5
-4
lines changed

2 files changed

+5
-4
lines changed

benchmark/events/ee-listeners.js

Lines changed: 1 addition & 1 deletion
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

Lines changed: 4 additions & 3 deletions
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,
@@ -616,9 +615,11 @@ function arrayClone(arr) {
616615
}
617616

618617
function unwrapListeners(arr) {
619-
const ret = new Array(arr.length);
618+
const ret = arrayClone(arr);
620619
for (let i = 0; i < ret.length; ++i) {
621-
ret[i] = arr[i].listener || arr[i];
620+
const orig = ret[i].listener;
621+
if (typeof orig === 'function')
622+
ret[i] = orig;
622623
}
623624
return ret;
624625
}

0 commit comments

Comments
 (0)