@@ -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 ) ;
@@ -439,3 +439,33 @@ ok(EventTarget);
439
439
const event = new Event ( '' ) ;
440
440
strictEqual ( event . toString ( ) , '[object Event]' ) ;
441
441
}
442
+ {
443
+ const target = new EventTarget ( ) ;
444
+ const ev = new Event ( 'toString' ) ;
445
+ const fn = common . mustCall ( ( event ) => strictEqual ( event . type , 'toString' ) ) ;
446
+ target . addEventListener ( 'toString' , fn ) ;
447
+ target . dispatchEvent ( ev ) ;
448
+ }
449
+ {
450
+ const target = new EventTarget ( ) ;
451
+ const ev = new Event ( '__proto__' ) ;
452
+ const fn = common . mustCall ( ( event ) => strictEqual ( event . type , '__proto__' ) ) ;
453
+ target . addEventListener ( '__proto__' , fn ) ;
454
+ target . dispatchEvent ( ev ) ;
455
+ }
456
+
457
+ ( async ( ) => {
458
+ // test NodeEventTarget async-iterability
459
+ const emitter = new NodeEventTarget ( ) ;
460
+ const event = new Event ( 'foo' ) ;
461
+ const interval = setInterval ( ( ) => emitter . dispatchEvent ( event ) ) ;
462
+ let count = 0 ;
463
+ for await ( const [ item ] of on ( emitter , 'foo' ) ) {
464
+ count ++ ;
465
+ strictEqual ( item . type , 'foo' ) ;
466
+ if ( count > 5 ) {
467
+ break ;
468
+ }
469
+ }
470
+ clearInterval ( interval ) ;
471
+ } ) ( ) . then ( common . mustCall ( ) ) ;
0 commit comments