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