Skip to content

Commit 83fba1e

Browse files
himself65BridgeAR
authored andcommitted
events: onceWrapper returns target value
PR-URL: #25818 Reviewed-By: Luigi Pinca <luigipinca@gmail.com> Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de> Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
1 parent 529b0c0 commit 83fba1e

File tree

2 files changed

+19
-1
lines changed

2 files changed

+19
-1
lines changed

lib/events.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -282,7 +282,7 @@ function onceWrapper(...args) {
282282
if (!this.fired) {
283283
this.target.removeListener(this.type, this.wrapFn);
284284
this.fired = true;
285-
Reflect.apply(this.listener, this.target, args);
285+
return Reflect.apply(this.listener, this.target, args);
286286
}
287287
}
288288

test/parallel/test-event-emitter-listeners.js

+18
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,12 @@ const events = require('events');
2727

2828
function listener() {}
2929
function listener2() {}
30+
function listener3() {
31+
return 0;
32+
}
33+
function listener4() {
34+
return 1;
35+
}
3036

3137
{
3238
const ee = new events.EventEmitter();
@@ -101,3 +107,15 @@ function listener2() {}
101107
assert.strictEqual(wrappedListeners.length, 2);
102108
assert.strictEqual(wrappedListeners[1].listener, listener);
103109
}
110+
111+
{
112+
const ee = new events.EventEmitter();
113+
ee.once('foo', listener3);
114+
ee.on('foo', listener4);
115+
const rawListeners = ee.rawListeners('foo');
116+
assert.strictEqual(rawListeners.length, 2);
117+
assert.strictEqual(rawListeners[0](), 0);
118+
const rawListener = ee.rawListeners('foo');
119+
assert.strictEqual(rawListener.length, 1);
120+
assert.strictEqual(rawListener[0](), 1);
121+
}

0 commit comments

Comments
 (0)