@@ -15,7 +15,7 @@ const {
15
15
throws,
16
16
} = require ( 'assert' ) ;
17
17
18
- const { once } = require ( 'events' ) ;
18
+ const { once, on } = require ( 'events' ) ;
19
19
20
20
// The globals are defined.
21
21
ok ( Event ) ;
@@ -70,7 +70,7 @@ ok(EventTarget);
70
70
strictEqual ( ev . type , 'foo' ) ;
71
71
}
72
72
{
73
- const ev = new Event ( 'foo' ) ;
73
+ const ev = new Event ( 'foo' ) ;
74
74
strictEqual ( ev . cancelBubble , false ) ;
75
75
ev . cancelBubble = true ;
76
76
strictEqual ( ev . cancelBubble , true ) ;
@@ -457,3 +457,33 @@ const ev = new Event('foo');
457
457
const event = new Event ( '' ) ;
458
458
strictEqual ( event . toString ( ) , '[object Event]' ) ;
459
459
}
460
+ {
461
+ const target = new EventTarget ( ) ;
462
+ const ev = new Event ( 'toString' ) ;
463
+ const fn = common . mustCall ( ( event ) => strictEqual ( event . type , 'toString' ) ) ;
464
+ target . addEventListener ( 'toString' , fn ) ;
465
+ target . dispatchEvent ( ev ) ;
466
+ }
467
+ {
468
+ const target = new EventTarget ( ) ;
469
+ const ev = new Event ( '__proto__' ) ;
470
+ const fn = common . mustCall ( ( event ) => strictEqual ( event . type , '__proto__' ) ) ;
471
+ target . addEventListener ( '__proto__' , fn ) ;
472
+ target . dispatchEvent ( ev ) ;
473
+ }
474
+
475
+ ( async ( ) => {
476
+ // test NodeEventTarget async-iterability
477
+ const emitter = new NodeEventTarget ( ) ;
478
+ const event = new Event ( 'foo' ) ;
479
+ const interval = setInterval ( ( ) => emitter . dispatchEvent ( event ) , 0 ) ;
480
+ let count = 0 ;
481
+ for await ( const [ item ] of on ( emitter , 'foo' ) ) {
482
+ count ++ ;
483
+ strictEqual ( item . type , 'foo' ) ;
484
+ if ( count > 5 ) {
485
+ break ;
486
+ }
487
+ }
488
+ clearInterval ( interval ) ;
489
+ } ) ( ) . then ( common . mustCall ( ) ) ;
0 commit comments