@@ -60,6 +60,7 @@ const kEvents = Symbol('kEvents');
6060const kIsBeingDispatched = Symbol ( 'kIsBeingDispatched' ) ;
6161const kStop = Symbol ( 'kStop' ) ;
6262const kTarget = Symbol ( 'kTarget' ) ;
63+ const kCurrentTarget = Symbol ( 'kCurrentTarget' ) ;
6364const kHandlers = Symbol ( 'kHandlers' ) ;
6465const kWeakHandler = Symbol ( 'kWeak' ) ;
6566const kResistStopPropagation = Symbol ( 'kResistStopPropagation' ) ;
@@ -126,6 +127,7 @@ class Event {
126127 }
127128
128129 this [ kTarget ] = null ;
130+ this [ kCurrentTarget ] = null ;
129131 this [ kIsBeingDispatched ] = false ;
130132 }
131133
@@ -196,7 +198,7 @@ class Event {
196198 get currentTarget ( ) {
197199 if ( ! isEvent ( this ) )
198200 throw new ERR_INVALID_THIS ( 'Event' ) ;
199- return this [ kTarget ] ;
201+ return this [ kCurrentTarget ] ;
200202 }
201203
202204 /**
@@ -757,20 +759,23 @@ class EventTarget {
757759 const createEvent = ( ) => {
758760 if ( event === undefined ) {
759761 event = this [ kCreateEvent ] ( nodeValue , type ) ;
760- event [ kTarget ] = this ;
762+ event [ kCurrentTarget ] = this ;
761763 event [ kIsBeingDispatched ] = true ;
762764 }
763765 return event ;
764766 } ;
765767 if ( event !== undefined ) {
766768 event [ kTarget ] = this ;
769+ event [ kCurrentTarget ] = this ;
767770 event [ kIsBeingDispatched ] = true ;
768771 }
769772
770773 const root = this [ kEvents ] . get ( type ) ;
771774 if ( root === undefined || root . next === undefined ) {
772- if ( event !== undefined )
775+ if ( event !== undefined ) {
776+ event [ kCurrentTarget ] = null ;
773777 event [ kIsBeingDispatched ] = false ;
778+ }
774779 return true ;
775780 }
776781
@@ -827,8 +832,10 @@ class EventTarget {
827832 handler = next ;
828833 }
829834
830- if ( event !== undefined )
835+ if ( event !== undefined ) {
836+ event [ kCurrentTarget ] = null ;
831837 event [ kIsBeingDispatched ] = false ;
838+ }
832839 }
833840
834841 [ kCreateEvent ] ( nodeValue , type ) {
0 commit comments