From c3f4c9432f77f32b6fe424850b2ae1c963ab0cce Mon Sep 17 00:00:00 2001 From: DarkWiiPlayer Date: Thu, 20 Feb 2025 22:59:12 +0100 Subject: [PATCH] Fix GC bug in reactive elements --- render.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/render.js b/render.js index 0b7e2c9..7498309 100644 --- a/render.js +++ b/render.js @@ -204,7 +204,7 @@ export class DomRenderer extends Renderer { if (observable.value instanceof DocumentFragment) { throw "Failed to create reactive element: Document fragments cannot be replaced dynamically" } - const element = this.toElement(observable.value) + const element = this.toElement(observable.value) || document.createComment("Reactive element Placeholder") untilDeathDoThemPart(element, observable) let ref = new WeakRef(element) @@ -217,6 +217,7 @@ export class DomRenderer extends Renderer { if (element?.dispatchEvent(new BeforeReplaceEvent(next))) { element.replaceWith(next) next.dispatchEvent(new ReplacedEvent(element)) + untilDeathDoThemPart(next, observable) element.dispatchEvent(new AfterReplaceEvent(next)) ref = new WeakRef(next) }