Skip to content

Commit f6c6d7d

Browse files
benjamingrbengl
authored andcommitted
events: set default handler value
Event handler like BroadcastChannel.onmessage and AbortSignal.onabort have a default value of `null` but we return `undefined`. Return `null` and add a test. PR-URL: #41970 Reviewed-By: Tobias Nießen <[email protected]> Reviewed-By: Michaël Zasso <[email protected]> Reviewed-By: Mestery <[email protected]> Reviewed-By: Colin Ihrig <[email protected]>
1 parent 8c912ab commit f6c6d7d

File tree

2 files changed

+10
-3
lines changed

2 files changed

+10
-3
lines changed

lib/internal/event_target.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -929,7 +929,7 @@ function defineEventHandler(emitter, name) {
929929
// 8.1.5.1 Event handlers - basically `on[eventName]` attributes
930930
ObjectDefineProperty(emitter, `on${name}`, {
931931
get() {
932-
return this[kHandlers]?.get(name)?.handler;
932+
return this[kHandlers]?.get(name)?.handler ?? null;
933933
},
934934
set(value) {
935935
if (!this[kHandlers]) {

test/parallel/test-eventtarget.js

+9-2
Original file line numberDiff line numberDiff line change
@@ -408,6 +408,13 @@ let asyncTest = Promise.resolve();
408408
target.onfoo = common.mustCall();
409409
target.dispatchEvent(new Event('foo'));
410410
}
411+
412+
{
413+
const target = new EventTarget();
414+
defineEventHandler(target, 'foo');
415+
strictEqual(target.onfoo, null);
416+
}
417+
411418
{
412419
const target = new EventTarget();
413420
defineEventHandler(target, 'foo');
@@ -623,14 +630,14 @@ let asyncTest = Promise.resolve();
623630
strictEqual(et.constructor.name, 'EventTarget');
624631
}
625632
{
626-
// Weak event handlers work
633+
// Weak event listeners work
627634
const et = new EventTarget();
628635
const listener = common.mustCall();
629636
et.addEventListener('foo', listener, { [kWeakHandler]: et });
630637
et.dispatchEvent(new Event('foo'));
631638
}
632639
{
633-
// Weak event handlers can be removed and weakness is not part of the key
640+
// Weak event listeners can be removed and weakness is not part of the key
634641
const et = new EventTarget();
635642
const listener = common.mustNotCall();
636643
et.addEventListener('foo', listener, { [kWeakHandler]: et });

0 commit comments

Comments
 (0)