From 3a7a5d7e62859baf9e22645d2e9195e32cfb06c0 Mon Sep 17 00:00:00 2001 From: Benjamin Gruenbaum Date: Sun, 31 May 2020 15:57:40 +0300 Subject: [PATCH] events: deal with Symbol() passed to event constructor MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit PR-URL: https://github.com/nodejs/node/pull/33612 Reviewed-By: Michaël Zasso Reviewed-By: James M Snell Reviewed-By: Ruben Bridgewater Reviewed-By: Juan José Arboleda Reviewed-By: Anna Henningsen --- lib/internal/event_target.js | 2 +- test/parallel/test-eventtarget.js | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/internal/event_target.js b/lib/internal/event_target.js index 763542eb0fc..611aa992211 100644 --- a/lib/internal/event_target.js +++ b/lib/internal/event_target.js @@ -50,7 +50,7 @@ class Event { this.#cancelable = !!cancelable; this.#bubbles = !!bubbles; this.#composed = !!composed; - this.#type = String(type); + this.#type = `${type}`; // isTrusted is special (LegacyUnforgeable) Object.defineProperty(this, 'isTrusted', { get() { return false; }, diff --git a/test/parallel/test-eventtarget.js b/test/parallel/test-eventtarget.js index 99d717abda6..1b79a6bbb0f 100644 --- a/test/parallel/test-eventtarget.js +++ b/test/parallel/test-eventtarget.js @@ -49,6 +49,7 @@ ok(EventTarget); ev.preventDefault(); strictEqual(ev.defaultPrevented, true); + throws(() => new Event(Symbol()), TypeError); } { const ev = new Event('foo');