@@ -87,6 +87,14 @@ function isEvent(value) {
8787}
8888
8989class Event {
90+ /**
91+ * @param {string } type
92+ * @param {{
93+ * bubbles?: boolean,
94+ * cancelable?: boolean,
95+ * composed?: boolean,
96+ * }} [options]
97+ */
9098 constructor ( type , options = null ) {
9199 if ( arguments . length === 0 )
92100 throw new ERR_MISSING_ARGS ( 'type' ) ;
@@ -146,42 +154,63 @@ class Event {
146154 this [ kDefaultPrevented ] = true ;
147155 }
148156
157+ /**
158+ * @type {EventTarget }
159+ */
149160 get target ( ) {
150161 if ( ! isEvent ( this ) )
151162 throw new ERR_INVALID_THIS ( 'Event' ) ;
152163 return this [ kTarget ] ;
153164 }
154165
166+ /**
167+ * @type {EventTarget }
168+ */
155169 get currentTarget ( ) {
156170 if ( ! isEvent ( this ) )
157171 throw new ERR_INVALID_THIS ( 'Event' ) ;
158172 return this [ kTarget ] ;
159173 }
160174
175+ /**
176+ * @type {EventTarget }
177+ */
161178 get srcElement ( ) {
162179 if ( ! isEvent ( this ) )
163180 throw new ERR_INVALID_THIS ( 'Event' ) ;
164181 return this [ kTarget ] ;
165182 }
166183
184+ /**
185+ * @type {string }
186+ */
167187 get type ( ) {
168188 if ( ! isEvent ( this ) )
169189 throw new ERR_INVALID_THIS ( 'Event' ) ;
170190 return this [ kType ] ;
171191 }
172192
193+ /**
194+ * @type {boolean }
195+ */
173196 get cancelable ( ) {
174197 if ( ! isEvent ( this ) )
175198 throw new ERR_INVALID_THIS ( 'Event' ) ;
176199 return this [ kCancelable ] ;
177200 }
178201
202+ /**
203+ * @type {boolean }
204+ */
179205 get defaultPrevented ( ) {
180206 if ( ! isEvent ( this ) )
181207 throw new ERR_INVALID_THIS ( 'Event' ) ;
182208 return this [ kCancelable ] && this [ kDefaultPrevented ] ;
183209 }
184210
211+ /**
212+ * @type {number }
213+ */
185214 get timeStamp ( ) {
186215 if ( ! isEvent ( this ) )
187216 throw new ERR_INVALID_THIS ( 'Event' ) ;
@@ -192,43 +221,63 @@ class Event {
192221 // The following are non-op and unused properties/methods from Web API Event.
193222 // These are not supported in Node.js and are provided purely for
194223 // API completeness.
195-
224+ /**
225+ * @returns {EventTarget[] }
226+ */
196227 composedPath ( ) {
197228 if ( ! isEvent ( this ) )
198229 throw new ERR_INVALID_THIS ( 'Event' ) ;
199230 return this [ kIsBeingDispatched ] ? [ this [ kTarget ] ] : [ ] ;
200231 }
201232
233+ /**
234+ * @type {boolean }
235+ */
202236 get returnValue ( ) {
203237 if ( ! isEvent ( this ) )
204238 throw new ERR_INVALID_THIS ( 'Event' ) ;
205239 return ! this . defaultPrevented ;
206240 }
207241
242+ /**
243+ * @type {boolean }
244+ */
208245 get bubbles ( ) {
209246 if ( ! isEvent ( this ) )
210247 throw new ERR_INVALID_THIS ( 'Event' ) ;
211248 return this [ kBubbles ] ;
212249 }
213250
251+ /**
252+ * @type {boolean }
253+ */
214254 get composed ( ) {
215255 if ( ! isEvent ( this ) )
216256 throw new ERR_INVALID_THIS ( 'Event' ) ;
217257 return this [ kComposed ] ;
218258 }
219259
260+ /**
261+ * @type {number }
262+ */
220263 get eventPhase ( ) {
221264 if ( ! isEvent ( this ) )
222265 throw new ERR_INVALID_THIS ( 'Event' ) ;
223266 return this [ kIsBeingDispatched ] ? Event . AT_TARGET : Event . NONE ;
224267 }
225268
269+ /**
270+ * @type {boolean }
271+ */
226272 get cancelBubble ( ) {
227273 if ( ! isEvent ( this ) )
228274 throw new ERR_INVALID_THIS ( 'Event' ) ;
229275 return this [ kPropagationStopped ] ;
230276 }
231277
278+ /**
279+ * @type {boolean }
280+ */
232281 set cancelBubble ( value ) {
233282 if ( ! isEvent ( this ) )
234283 throw new ERR_INVALID_THIS ( 'Event' ) ;
@@ -391,6 +440,19 @@ class EventTarget {
391440 }
392441 [ kRemoveListener ] ( size , type , listener , capture ) { }
393442
443+ /**
444+ * @callback EventTargetCallback
445+ * @param {Event } event
446+ * @typedef {{ handleEvent: EventTargetCallback } } EventListener
447+ * @param {string } type
448+ * @param {EventTargetCallback|EventListener } listener
449+ * @param {{
450+ * capture?: boolean,
451+ * once?: boolean,
452+ * passive?: boolean,
453+ * signal?: AbortSignal
454+ * }} [options]
455+ */
394456 addEventListener ( type , listener , options = { } ) {
395457 if ( ! isEventTarget ( this ) )
396458 throw new ERR_INVALID_THIS ( 'EventTarget' ) ;
@@ -471,6 +533,13 @@ class EventTarget {
471533 this [ kNewListener ] ( root . size , type , listener , once , capture , passive , weak ) ;
472534 }
473535
536+ /**
537+ * @param {string } type
538+ * @param {EventTargetCallback|EventListener } listener
539+ * @param {{
540+ * capture?: boolean,
541+ * }} [options]
542+ */
474543 removeEventListener ( type , listener , options = { } ) {
475544 if ( ! isEventTarget ( this ) )
476545 throw new ERR_INVALID_THIS ( 'EventTarget' ) ;
@@ -498,6 +567,9 @@ class EventTarget {
498567 }
499568 }
500569
570+ /**
571+ * @param {Event } event
572+ */
501573 dispatchEvent ( event ) {
502574 if ( ! isEventTarget ( this ) )
503575 throw new ERR_INVALID_THIS ( 'EventTarget' ) ;
@@ -627,58 +699,103 @@ class NodeEventTarget extends EventTarget {
627699 initNodeEventTarget ( this ) ;
628700 }
629701
702+ /**
703+ * @param {number } n
704+ */
630705 setMaxListeners ( n ) {
631706 if ( ! isNodeEventTarget ( this ) )
632707 throw new ERR_INVALID_THIS ( 'NodeEventTarget' ) ;
633708 EventEmitter . setMaxListeners ( n , this ) ;
634709 }
635710
711+ /**
712+ * @returns {number }
713+ */
636714 getMaxListeners ( ) {
637715 if ( ! isNodeEventTarget ( this ) )
638716 throw new ERR_INVALID_THIS ( 'NodeEventTarget' ) ;
639717 return this [ kMaxEventTargetListeners ] ;
640718 }
641719
720+ /**
721+ * @returns {string[] }
722+ */
642723 eventNames ( ) {
643724 if ( ! isNodeEventTarget ( this ) )
644725 throw new ERR_INVALID_THIS ( 'NodeEventTarget' ) ;
645726 return ArrayFrom ( this [ kEvents ] . keys ( ) ) ;
646727 }
647728
729+ /**
730+ * @param {string } [type]
731+ * @returns {number }
732+ */
648733 listenerCount ( type ) {
649734 if ( ! isNodeEventTarget ( this ) )
650735 throw new ERR_INVALID_THIS ( 'NodeEventTarget' ) ;
651736 const root = this [ kEvents ] . get ( String ( type ) ) ;
652737 return root !== undefined ? root . size : 0 ;
653738 }
654739
740+ /**
741+ * @param {string } type
742+ * @param {EventTargetCallback|EventListener } listener
743+ * @param {{
744+ * capture?: boolean,
745+ * }} [options]
746+ * @returns {NodeEventTarget }
747+ */
655748 off ( type , listener , options ) {
656749 if ( ! isNodeEventTarget ( this ) )
657750 throw new ERR_INVALID_THIS ( 'NodeEventTarget' ) ;
658751 this . removeEventListener ( type , listener , options ) ;
659752 return this ;
660753 }
661754
755+ /**
756+ * @param {string } type
757+ * @param {EventTargetCallback|EventListener } listener
758+ * @param {{
759+ * capture?: boolean,
760+ * }} [options]
761+ * @returns {NodeEventTarget }
762+ */
662763 removeListener ( type , listener , options ) {
663764 if ( ! isNodeEventTarget ( this ) )
664765 throw new ERR_INVALID_THIS ( 'NodeEventTarget' ) ;
665766 this . removeEventListener ( type , listener , options ) ;
666767 return this ;
667768 }
668769
770+ /**
771+ * @param {string } type
772+ * @param {EventTargetCallback|EventListener } listener
773+ * @returns {NodeEventTarget }
774+ */
669775 on ( type , listener ) {
670776 if ( ! isNodeEventTarget ( this ) )
671777 throw new ERR_INVALID_THIS ( 'NodeEventTarget' ) ;
672778 this . addEventListener ( type , listener , { [ kIsNodeStyleListener ] : true } ) ;
673779 return this ;
674780 }
675781
782+ /**
783+ * @param {string } type
784+ * @param {EventTargetCallback|EventListener } listener
785+ * @returns {NodeEventTarget }
786+ */
676787 addListener ( type , listener ) {
677788 if ( ! isNodeEventTarget ( this ) )
678789 throw new ERR_INVALID_THIS ( 'NodeEventTarget' ) ;
679790 this . addEventListener ( type , listener , { [ kIsNodeStyleListener ] : true } ) ;
680791 return this ;
681792 }
793+
794+ /**
795+ * @param {string } type
796+ * @param {any } arg
797+ * @returns {boolean }
798+ */
682799 emit ( type , arg ) {
683800 if ( ! isNodeEventTarget ( this ) )
684801 throw new ERR_INVALID_THIS ( 'NodeEventTarget' ) ;
@@ -688,6 +805,11 @@ class NodeEventTarget extends EventTarget {
688805 return hadListeners ;
689806 }
690807
808+ /**
809+ * @param {string } type
810+ * @param {EventTargetCallback|EventListener } listener
811+ * @returns {NodeEventTarget }
812+ */
691813 once ( type , listener ) {
692814 if ( ! isNodeEventTarget ( this ) )
693815 throw new ERR_INVALID_THIS ( 'NodeEventTarget' ) ;
@@ -696,6 +818,10 @@ class NodeEventTarget extends EventTarget {
696818 return this ;
697819 }
698820
821+ /**
822+ * @param {string } type
823+ * @returns {NodeEventTarget }
824+ */
699825 removeAllListeners ( type ) {
700826 if ( ! isNodeEventTarget ( this ) )
701827 throw new ERR_INVALID_THIS ( 'NodeEventTarget' ) ;
0 commit comments