From c6dc80bb8618b8cb4ce4183dde8ec7bd04aa9d2f Mon Sep 17 00:00:00 2001 From: Benjamin Gruenbaum Date: Thu, 28 May 2020 21:19:13 +0300 Subject: [PATCH 1/2] events: add tests, better toString --- lib/internal/event_target.js | 1 + test/parallel/test-eventtarget.js | 16 +++++++++++++++- 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/lib/internal/event_target.js b/lib/internal/event_target.js index 4cc561f95c0bba..a898a3c653f36e 100644 --- a/lib/internal/event_target.js +++ b/lib/internal/event_target.js @@ -282,6 +282,7 @@ class EventTarget { return `${name} ${inspect({}, opts)}`; } + get [Symbol.toStringTag]() { return 'EventTarget'; } } Object.defineProperties(EventTarget.prototype, { diff --git a/test/parallel/test-eventtarget.js b/test/parallel/test-eventtarget.js index 3b44714cfbe2dc..b4215e7a09bac6 100644 --- a/test/parallel/test-eventtarget.js +++ b/test/parallel/test-eventtarget.js @@ -75,7 +75,14 @@ ok(EventTarget); eventTarget.removeEventListener('foo', ev1); eventTarget.dispatchEvent(new Event('foo')); } - +{ + // event subclassing + const SubEvent = class extends Event {}; + const ev = new SubEvent('foo'); + const eventTarget = new EventTarget(); + eventTarget.addEventListener('foo', common.mustCall((event) => strictEqual(event, ev)), { once: true }); + eventTarget.dispatchEvent(ev); +} { const eventTarget = new NodeEventTarget(); strictEqual(eventTarget.listenerCount('foo'), 0); @@ -384,3 +391,10 @@ ok(EventTarget); target.removeEventListener('foo', a, { capture: false }); target.dispatchEvent(new Event('foo')); } + +{ + const target = new EventTarget(); + strictEqual(target.toString(), "[object EventTarget]"); + const event = new Event(); + strictEqual(event.toString(), "[object Event]"); +} From 7a85028048d8166cb707acd1d47b5459432ecd7c Mon Sep 17 00:00:00 2001 From: Benjamin Gruenbaum Date: Thu, 28 May 2020 21:31:33 +0300 Subject: [PATCH 2/2] fixup! lint --- test/parallel/test-eventtarget.js | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/test/parallel/test-eventtarget.js b/test/parallel/test-eventtarget.js index b4215e7a09bac6..f27f96803e2a93 100644 --- a/test/parallel/test-eventtarget.js +++ b/test/parallel/test-eventtarget.js @@ -80,7 +80,8 @@ ok(EventTarget); const SubEvent = class extends Event {}; const ev = new SubEvent('foo'); const eventTarget = new EventTarget(); - eventTarget.addEventListener('foo', common.mustCall((event) => strictEqual(event, ev)), { once: true }); + const fn = common.mustCall((event) => strictEqual(event, ev)); + eventTarget.addEventListener('foo', fn, { once: true }); eventTarget.dispatchEvent(ev); } { @@ -394,7 +395,7 @@ ok(EventTarget); { const target = new EventTarget(); - strictEqual(target.toString(), "[object EventTarget]"); + strictEqual(target.toString(), '[object EventTarget]'); const event = new Event(); - strictEqual(event.toString(), "[object Event]"); + strictEqual(event.toString(), '[object Event]'); }