diff --git a/lib/internal/event_target.js b/lib/internal/event_target.js index 2be1b9cf0b9f39..6c4841dd5104f0 100644 --- a/lib/internal/event_target.js +++ b/lib/internal/event_target.js @@ -633,6 +633,8 @@ class EventTarget { removeEventListener(type, listener, options = kEmptyObject) { if (!isEventTarget(this)) throw new ERR_INVALID_THIS('EventTarget'); + if (arguments.length < 2) + throw new ERR_MISSING_ARGS('type', 'listener'); if (!validateEventListener(listener)) return; @@ -663,6 +665,8 @@ class EventTarget { dispatchEvent(event) { if (!isEventTarget(this)) throw new ERR_INVALID_THIS('EventTarget'); + if (arguments.length < 1) + throw new ERR_MISSING_ARGS('event'); if (!(event instanceof Event)) throw new ERR_INVALID_ARG_TYPE('event', 'Event', event); diff --git a/test/parallel/test-eventtarget.js b/test/parallel/test-eventtarget.js index d9802faa1f97bf..0ed9ced8c2b819 100644 --- a/test/parallel/test-eventtarget.js +++ b/test/parallel/test-eventtarget.js @@ -676,3 +676,32 @@ let asyncTest = Promise.resolve(); et.dispatchEvent(new Event('foo')); }); } + +{ + const et = new EventTarget(); + + throws(() => et.addEventListener(), { + code: 'ERR_MISSING_ARGS', + name: 'TypeError', + }); + + throws(() => et.addEventListener('foo'), { + code: 'ERR_MISSING_ARGS', + name: 'TypeError', + }); + + throws(() => et.removeEventListener(), { + code: 'ERR_MISSING_ARGS', + name: 'TypeError', + }); + + throws(() => et.removeEventListener('foo'), { + code: 'ERR_MISSING_ARGS', + name: 'TypeError', + }); + + throws(() => et.dispatchEvent(), { + code: 'ERR_MISSING_ARGS', + name: 'TypeError', + }); +}