@@ -196,38 +196,23 @@ function _mount(Component, { target, anchor, props = {}, events, context, intro
196196
197197 const registered_events = new Set ( ) ;
198198
199- const bound_event_listener = handle_event_propagation . bind ( null , target ) ;
200- const bound_document_event_listener = handle_event_propagation . bind ( null , document ) ;
201-
202199 /** @param {Array<string> } events */
203200 const event_handle = ( events ) => {
204201 for ( let i = 0 ; i < events . length ; i ++ ) {
205202 const event_name = events [ i ] ;
203+ const passive = PassiveDelegatedEvents . includes ( event_name ) ;
204+
206205 if ( ! registered_events . has ( event_name ) ) {
207206 registered_events . add ( event_name ) ;
207+
208208 // Add the event listener to both the container and the document.
209209 // The container listener ensures we catch events from within in case
210210 // the outer content stops propagation of the event.
211- target . addEventListener (
212- event_name ,
213- bound_event_listener ,
214- PassiveDelegatedEvents . includes ( event_name )
215- ? {
216- passive : true
217- }
218- : undefined
219- ) ;
211+ target . addEventListener ( event_name , handle_event_propagation , { passive } ) ;
212+
220213 // The document listener ensures we catch events that originate from elements that were
221214 // manually moved outside of the container (e.g. via manual portals).
222- document . addEventListener (
223- event_name ,
224- bound_document_event_listener ,
225- PassiveDelegatedEvents . includes ( event_name )
226- ? {
227- passive : true
228- }
229- : undefined
230- ) ;
215+ document . addEventListener ( event_name , handle_event_propagation , { passive } ) ;
231216 }
232217 }
233218 } ;
@@ -264,9 +249,10 @@ function _mount(Component, { target, anchor, props = {}, events, context, intro
264249
265250 return ( ) => {
266251 for ( const event_name of registered_events ) {
267- target . removeEventListener ( event_name , bound_event_listener ) ;
268- document . removeEventListener ( event_name , bound_document_event_listener ) ;
252+ target . removeEventListener ( event_name , handle_event_propagation ) ;
253+ document . removeEventListener ( event_name , handle_event_propagation ) ;
269254 }
255+
270256 root_event_handles . delete ( event_handle ) ;
271257 mounted_components . delete ( component ) ;
272258 } ;
0 commit comments