From 752f872a1d7ba1cf0c722ad596bcf38541608825 Mon Sep 17 00:00:00 2001 From: markpsiano <102199173+markpsiano@users.noreply.github.com> Date: Mon, 24 Jun 2024 10:49:56 -0400 Subject: [PATCH] fix: memory leak in unmount where document event listeners are not being removed (#12101) * Fix memory leak in unmount where document event listeners are not being removed * changeset --------- Co-authored-by: Mark Siano Co-authored-by: Rich Harris Co-authored-by: Rich Harris --- .changeset/bright-berries-smell.md | 5 +++++ packages/svelte/src/internal/client/render.js | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) create mode 100644 .changeset/bright-berries-smell.md diff --git a/.changeset/bright-berries-smell.md b/.changeset/bright-berries-smell.md new file mode 100644 index 000000000000..f1fdb4aa8145 --- /dev/null +++ b/.changeset/bright-berries-smell.md @@ -0,0 +1,5 @@ +--- +"svelte": patch +--- + +fix: remove correct event listener from document diff --git a/packages/svelte/src/internal/client/render.js b/packages/svelte/src/internal/client/render.js index e1b385cd21ba..d18876b3734e 100644 --- a/packages/svelte/src/internal/client/render.js +++ b/packages/svelte/src/internal/client/render.js @@ -265,7 +265,7 @@ function _mount(Component, { target, anchor, props = {}, events, context, intro return () => { for (const event_name of registered_events) { target.removeEventListener(event_name, bound_event_listener); - document.removeEventListener(event_name, bound_event_listener); + document.removeEventListener(event_name, bound_document_event_listener); } root_event_handles.delete(event_handle); mounted_components.delete(component);