@@ -414,6 +414,7 @@ let asyncTest = Promise.resolve();
414414}
415415
416416{
417+ // Event Statics
417418 strictEqual ( Event . NONE , 0 ) ;
418419 strictEqual ( Event . CAPTURING_PHASE , 1 ) ;
419420 strictEqual ( Event . AT_TARGET , 2 ) ;
@@ -424,6 +425,8 @@ let asyncTest = Promise.resolve();
424425 strictEqual ( e . eventPhase , Event . AT_TARGET ) ;
425426 } ) , { once : true } ) ;
426427 target . dispatchEvent ( new Event ( 'foo' ) ) ;
428+ // Event is a function
429+ strictEqual ( Event . length , 1 ) ;
427430}
428431
429432{
@@ -485,3 +488,32 @@ let asyncTest = Promise.resolve();
485488 eventTarget . dispatchEvent ( event ) ;
486489 strictEqual ( event . target , eventTarget ) ;
487490}
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