From 2b70f3f4748cafe2a7ac50a6dbcfd4bb24abbab2 Mon Sep 17 00:00:00 2001 From: Rich Harris Date: Wed, 12 Nov 2025 21:35:17 -0500 Subject: [PATCH] WIP --- .../src/internal/client/dom/blocks/each.js | 34 ++++++------------- 1 file changed, 10 insertions(+), 24 deletions(-) diff --git a/packages/svelte/src/internal/client/dom/blocks/each.js b/packages/svelte/src/internal/client/dom/blocks/each.js index 9bb5a7da0c..70a9f0fa27 100644 --- a/packages/svelte/src/internal/client/dom/blocks/each.js +++ b/packages/svelte/src/internal/client/dom/blocks/each.js @@ -389,35 +389,21 @@ function reconcile(each_effect, array, state, anchor, render_fn, flags, get_key, item = onscreen.get(key); if (item === undefined) { - var pending = offscreen.get(key); + item = offscreen.get(key); - if (pending !== undefined) { - offscreen.delete(key); - onscreen.set(key, pending); + if (item === undefined) { + throw new Error('this should be impossible'); + } - var next = prev ? prev.next : current; + offscreen.delete(key); - link(state, prev, pending); - link(state, pending, next); + var next = prev ? prev.next : current; - move(pending, next, anchor); - prev = pending; - } else { - var child_anchor = current ? /** @type {TemplateNode} */ (current.e.nodes_start) : anchor; + link(state, prev, item); + link(state, item, next); - prev = create_item( - child_anchor, - state, - prev, - prev === null ? state.first : prev.next, - value, - key, - i, - render_fn, - flags, - get_collection - ); - } + move(item, next, anchor); + prev = item; onscreen.set(key, prev);