diff options
author | Hayleigh Thompson <me@hayleigh.dev> | 2024-05-18 09:54:24 +0100 |
---|---|---|
committer | Hayleigh Thompson <me@hayleigh.dev> | 2024-05-18 09:55:02 +0100 |
commit | 6310f758a18aa0cb0d818c590c6251074f268a8d (patch) | |
tree | 8860df4218d27d4a8d136a24cb8cf247509ef692 /priv/static/lustre-server-component.mjs | |
parent | 6d164196490e12f3d738d32a2435692fd16f689b (diff) | |
download | lustre-6310f758a18aa0cb0d818c590c6251074f268a8d.tar.gz lustre-6310f758a18aa0cb0d818c590c6251074f268a8d.zip |
:bug: Fixed a bug where unordered patches would cause runtime errors.
Diffstat (limited to 'priv/static/lustre-server-component.mjs')
-rw-r--r-- | priv/static/lustre-server-component.mjs | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/priv/static/lustre-server-component.mjs b/priv/static/lustre-server-component.mjs index 239addc..f1a821c 100644 --- a/priv/static/lustre-server-component.mjs +++ b/priv/static/lustre-server-component.mjs @@ -46,6 +46,8 @@ function morph(prev, next, dispatch, isComponent = false) { stack.unshift({ prev: prev2, next: fragmentElement, parent }); prev2 = prev2?.nextSibling; }); + } else if (next2.subtree !== void 0) { + stack.push({ prev: prev2, next: next2, parent }); } } return out; @@ -129,6 +131,8 @@ function createElementNode({ prev, next, dispatch, stack }) { const value = attr[1]; if (attr.as_property) { el2[name] = value; + if (canMorph) + prevAttributes.delete(name); } else if (name.startsWith("on")) { const eventName = name.slice(2); const callback = dispatch(value); @@ -286,7 +290,6 @@ function getDeepChild(el2, path) { let rest; let child = el2; while ([n, ...rest] = path, n !== void 0) { - console.log({ n, rest, child, path }); child = child.childNodes.item(n); path = rest; } |