@@ -16,7 +16,7 @@ const {
16
16
throws,
17
17
} = require ( 'assert' ) ;
18
18
19
- const { once } = require ( 'events' ) ;
19
+ const { once, on } = require ( 'events' ) ;
20
20
21
21
// The globals are defined.
22
22
ok ( Event ) ;
@@ -71,7 +71,7 @@ ok(EventTarget);
71
71
strictEqual ( ev . type , 'foo' ) ;
72
72
}
73
73
{
74
- const ev = new Event ( 'foo' ) ;
74
+ const ev = new Event ( 'foo' ) ;
75
75
strictEqual ( ev . cancelBubble , false ) ;
76
76
ev . cancelBubble = true ;
77
77
strictEqual ( ev . cancelBubble , true ) ;
@@ -528,3 +528,35 @@ const ev = new Event('foo');
528
528
} ) , { once : true } ) ;
529
529
target . dispatchEvent ( new Event ( 'foo' ) ) ;
530
530
}
531
+
532
+ {
533
+ const target = new EventTarget ( ) ;
534
+ const ev = new Event ( 'toString' ) ;
535
+ const fn = common . mustCall ( ( event ) => strictEqual ( event . type , 'toString' ) ) ;
536
+ target . addEventListener ( 'toString' , fn ) ;
537
+ target . dispatchEvent ( ev ) ;
538
+ }
539
+ {
540
+ const target = new EventTarget ( ) ;
541
+ const ev = new Event ( '__proto__' ) ;
542
+ const fn = common . mustCall ( ( event ) => strictEqual ( event . type , '__proto__' ) ) ;
543
+ target . addEventListener ( '__proto__' , fn ) ;
544
+ target . dispatchEvent ( ev ) ;
545
+ }
546
+
547
+ ( async ( ) => {
548
+ // test NodeEventTarget async-iterability
549
+ const emitter = new NodeEventTarget ( ) ;
550
+ const interval = setInterval ( ( ) => {
551
+ emitter . dispatchEvent ( new Event ( 'foo' ) ) ;
552
+ } , 0 ) ;
553
+ let count = 0 ;
554
+ for await ( const [ item ] of on ( emitter , 'foo' ) ) {
555
+ count ++ ;
556
+ strictEqual ( item . type , 'foo' ) ;
557
+ if ( count > 5 ) {
558
+ break ;
559
+ }
560
+ }
561
+ clearInterval ( interval ) ;
562
+ } ) ( ) . then ( common . mustCall ( ) ) ;
0 commit comments