GeezerVison is showing github.com — lib: check number of arguments in `EventTarget`'s function · nodejs/node@1284789
File tree
Expand file treeCollapse file tree
Open diff view settings
Expand file treeCollapse file tree
Open diff view settings
Collapse file
Copy file name to clipboardExpand all lines: lib/internal/event_target.js +4Lines changed: 4 additions & 0 deletions | Original file line number | Diff line number | Diff line change |
|---|
@@ -633,6 +633,8 @@ class EventTarget { |
633 | 633 | removeEventListener(type, listener, options = kEmptyObject) { |
634 | 634 | if (!isEventTarget(this)) |
635 | 635 | throw new ERR_INVALID_THIS('EventTarget'); |
| 636 | + if (arguments.length < 2) |
| 637 | + throw new ERR_MISSING_ARGS('type', 'listener'); |
636 | 638 | if (!validateEventListener(listener)) |
637 | 639 | return; |
638 | 640 |
|
@@ -663,6 +665,8 @@ class EventTarget { |
663 | 665 | dispatchEvent(event) { |
664 | 666 | if (!isEventTarget(this)) |
665 | 667 | throw new ERR_INVALID_THIS('EventTarget'); |
| 668 | + if (arguments.length < 1) |
| 669 | + throw new ERR_MISSING_ARGS('event'); |
666 | 670 |
|
667 | 671 | if (!(event instanceof Event)) |
668 | 672 | throw new ERR_INVALID_ARG_TYPE('event', 'Event', event); |
|
Collapse file
Copy file name to clipboardExpand all lines: test/parallel/test-eventtarget.js +29Lines changed: 29 additions & 0 deletions | Original file line number | Diff line number | Diff line change |
|---|
@@ -676,3 +676,32 @@ let asyncTest = Promise.resolve(); |
676 | 676 | et.dispatchEvent(new Event('foo')); |
677 | 677 | }); |
678 | 678 | } |
| 679 | + |
| 680 | +{ |
| 681 | + const et = new EventTarget(); |
| 682 | + |
| 683 | + throws(() => et.addEventListener(), { |
| 684 | + code: 'ERR_MISSING_ARGS', |
| 685 | + name: 'TypeError', |
| 686 | + }); |
| 687 | + |
| 688 | + throws(() => et.addEventListener('foo'), { |
| 689 | + code: 'ERR_MISSING_ARGS', |
| 690 | + name: 'TypeError', |
| 691 | + }); |
| 692 | + |
| 693 | + throws(() => et.removeEventListener(), { |
| 694 | + code: 'ERR_MISSING_ARGS', |
| 695 | + name: 'TypeError', |
| 696 | + }); |
| 697 | + |
| 698 | + throws(() => et.removeEventListener('foo'), { |
| 699 | + code: 'ERR_MISSING_ARGS', |
| 700 | + name: 'TypeError', |
| 701 | + }); |
| 702 | + |
| 703 | + throws(() => et.dispatchEvent(), { |
| 704 | + code: 'ERR_MISSING_ARGS', |
| 705 | + name: 'TypeError', |
| 706 | + }); |
| 707 | +} |