Skip to content

Commit a9081b5

Browse files
KhafraDevjasnell
authored andcommitted
events: allow null/undefined eventInitDict
PR-URL: #54643 Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com> Reviewed-By: LiviaMedeiros <livia@cirno.name> Reviewed-By: Minwoo Jung <nodecorelab@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com>
1 parent d473606 commit a9081b5

File tree

2 files changed

+12
-6
lines changed

2 files changed

+12
-6
lines changed

lib/internal/event_target.js

+6-6
Original file line numberDiff line numberDiff line change
@@ -111,14 +111,14 @@ class Event {
111111
* composed?: boolean,
112112
* }} [options]
113113
*/
114-
constructor(type, options = kEmptyObject) {
114+
constructor(type, options = undefined) {
115115
if (arguments.length === 0)
116116
throw new ERR_MISSING_ARGS('type');
117-
validateObject(options, 'options');
118-
const { bubbles, cancelable, composed } = options;
119-
this.#cancelable = !!cancelable;
120-
this.#bubbles = !!bubbles;
121-
this.#composed = !!composed;
117+
if (options != null)
118+
validateObject(options, 'options');
119+
this.#bubbles = !!options?.bubbles;
120+
this.#cancelable = !!options?.cancelable;
121+
this.#composed = !!options?.composed;
122122

123123
this[kType] = `${type}`;
124124
if (options?.[kTrustEvent]) {

test/parallel/test-eventtarget.js

+6
Original file line numberDiff line numberDiff line change
@@ -747,3 +747,9 @@ let asyncTest = Promise.resolve();
747747
event.cancelBubble = true;
748748
strictEqual(event.cancelBubble, true);
749749
}
750+
751+
{
752+
// A null eventInitDict should not throw an error.
753+
new Event('', null);
754+
new Event('', undefined);
755+
}

0 commit comments

Comments
 (0)