Skip to content

Commit 0c1666a

Browse files
KhafraDevmarco-ippolito
authored andcommitted
events: allow null/undefined eventInitDict
PR-URL: #54643 Reviewed-By: Yagiz Nizipli <[email protected]> Reviewed-By: LiviaMedeiros <[email protected]> Reviewed-By: Minwoo Jung <[email protected]> Reviewed-By: James M Snell <[email protected]>
1 parent 93a098c commit 0c1666a

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
@@ -115,14 +115,14 @@ class Event {
115115
* composed?: boolean,
116116
* }} [options]
117117
*/
118-
constructor(type, options = kEmptyObject) {
118+
constructor(type, options = undefined) {
119119
if (arguments.length === 0)
120120
throw new ERR_MISSING_ARGS('type');
121-
validateObject(options, 'options');
122-
const { bubbles, cancelable, composed } = options;
123-
this.#cancelable = !!cancelable;
124-
this.#bubbles = !!bubbles;
125-
this.#composed = !!composed;
121+
if (options != null)
122+
validateObject(options, 'options');
123+
this.#bubbles = !!options?.bubbles;
124+
this.#cancelable = !!options?.cancelable;
125+
this.#composed = !!options?.composed;
126126

127127
this[kType] = `${type}`;
128128
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)