Skip to content

Commit e874508

Browse files
deokjinkimtargos
authored andcommitted
lib: check number of arguments in EventTarget's function
For now, addEventListener() only checks number of arguments. removeEventListener() and dispatchEvent() also need checking number of arguments. PR-URL: #45668 Reviewed-By: Antoine du Hamel <[email protected]> Reviewed-By: Daeyeon Jeong <[email protected]>
1 parent 9f7bb5c commit e874508

File tree

2 files changed

+33
-0
lines changed

2 files changed

+33
-0
lines changed

lib/internal/event_target.js

+4
Original file line numberDiff line numberDiff line change
@@ -636,6 +636,8 @@ class EventTarget {
636636
removeEventListener(type, listener, options = kEmptyObject) {
637637
if (!isEventTarget(this))
638638
throw new ERR_INVALID_THIS('EventTarget');
639+
if (arguments.length < 2)
640+
throw new ERR_MISSING_ARGS('type', 'listener');
639641
if (!validateEventListener(listener))
640642
return;
641643

@@ -666,6 +668,8 @@ class EventTarget {
666668
dispatchEvent(event) {
667669
if (!isEventTarget(this))
668670
throw new ERR_INVALID_THIS('EventTarget');
671+
if (arguments.length < 1)
672+
throw new ERR_MISSING_ARGS('event');
669673

670674
if (!(event instanceof Event))
671675
throw new ERR_INVALID_ARG_TYPE('event', 'Event', event);

test/parallel/test-eventtarget.js

+29
Original file line numberDiff line numberDiff line change
@@ -685,3 +685,32 @@ let asyncTest = Promise.resolve();
685685
et.dispatchEvent(new Event('foo'));
686686
});
687687
}
688+
689+
{
690+
const et = new EventTarget();
691+
692+
throws(() => et.addEventListener(), {
693+
code: 'ERR_MISSING_ARGS',
694+
name: 'TypeError',
695+
});
696+
697+
throws(() => et.addEventListener('foo'), {
698+
code: 'ERR_MISSING_ARGS',
699+
name: 'TypeError',
700+
});
701+
702+
throws(() => et.removeEventListener(), {
703+
code: 'ERR_MISSING_ARGS',
704+
name: 'TypeError',
705+
});
706+
707+
throws(() => et.removeEventListener('foo'), {
708+
code: 'ERR_MISSING_ARGS',
709+
name: 'TypeError',
710+
});
711+
712+
throws(() => et.dispatchEvent(), {
713+
code: 'ERR_MISSING_ARGS',
714+
name: 'TypeError',
715+
});
716+
}

0 commit comments

Comments
 (0)