Skip to content

Commit 667195e

Browse files
mscdexcodebytere
authored andcommitted
events: improve listeners() performance
PR-URL: #33863 Reviewed-By: Robert Nagy <ronagy@icloud.com> Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: Gerhard Stöbich <deb2001-github@yahoo.de> Reviewed-By: Luigi Pinca <luigipinca@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Yongsheng Zhang <zyszys98@gmail.com>
1 parent e924439 commit 667195e

2 files changed

Lines changed: 5 additions & 4 deletions

File tree

‎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(letk=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,
@@ -613,9 +612,11 @@ function arrayClone(arr) {
613612
}
614613

615614
functionunwrapListeners(arr){
616-
constret=newArray(arr.length);
615+
constret=arrayClone(arr);
617616
for(leti=0;i<ret.length;++i){
618-
ret[i]=arr[i].listener||arr[i];
617+
constorig=ret[i].listener;
618+
if(typeoforig==='function')
619+
ret[i]=orig;
619620
}
620621
returnret;
621622
}

0 commit comments

Comments
 (0)