Fix GC bug in reactive elements

This commit is contained in:
Talia 2025-02-20 22:59:12 +01:00
parent ce416d994b
commit c3f4c9432f
Signed by: darkwiiplayer
GPG key ID: 7808674088232B3E

View file

@ -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)
}