@@ -414,6 +414,7 @@ let asyncTest = Promise.resolve();
414
414
}
415
415
416
416
{
417
+ // Event Statics
417
418
strictEqual ( Event . NONE , 0 ) ;
418
419
strictEqual ( Event . CAPTURING_PHASE , 1 ) ;
419
420
strictEqual ( Event . AT_TARGET , 2 ) ;
@@ -424,6 +425,8 @@ let asyncTest = Promise.resolve();
424
425
strictEqual ( e . eventPhase , Event . AT_TARGET ) ;
425
426
} ) , { once : true } ) ;
426
427
target . dispatchEvent ( new Event ( 'foo' ) ) ;
428
+ // Event is a function
429
+ strictEqual ( Event . length , 1 ) ;
427
430
}
428
431
429
432
{
@@ -485,3 +488,32 @@ let asyncTest = Promise.resolve();
485
488
eventTarget . dispatchEvent ( event ) ;
486
489
strictEqual ( event . target , eventTarget ) ;
487
490
}
491
+ {
492
+ // Event target exported keys
493
+ const eventTarget = new EventTarget ( ) ;
494
+ deepStrictEqual ( Object . keys ( eventTarget ) , [ ] ) ;
495
+ deepStrictEqual ( Object . getOwnPropertyNames ( eventTarget ) , [ ] ) ;
496
+ const parentKeys = Object . keys ( Object . getPrototypeOf ( eventTarget ) ) . sort ( ) ;
497
+ const keys = [ 'addEventListener' , 'dispatchEvent' , 'removeEventListener' ] ;
498
+ deepStrictEqual ( parentKeys , keys ) ;
499
+ }
500
+ {
501
+ // Subclassing
502
+ class SubTarget extends EventTarget { }
503
+ const target = new SubTarget ( ) ;
504
+ target . addEventListener ( 'foo' , common . mustCall ( ) ) ;
505
+ target . dispatchEvent ( new Event ( 'foo' ) ) ;
506
+ }
507
+ {
508
+ // Test event order
509
+ const target = new EventTarget ( ) ;
510
+ let state = 0 ;
511
+ target . addEventListener ( 'foo' , common . mustCall ( ( ) => {
512
+ strictEqual ( state , 0 ) ;
513
+ state ++ ;
514
+ } ) ) ;
515
+ target . addEventListener ( 'foo' , common . mustCall ( ( ) => {
516
+ strictEqual ( state , 1 ) ;
517
+ } ) ) ;
518
+ target . dispatchEvent ( new Event ( 'foo' ) ) ;
519
+ }
0 commit comments