pending_items -> offscreen_items

async-abort-signal
Rich Harris 7 months ago
parent e69d85b1a0
commit ff5d9fec07

@ -142,7 +142,7 @@ export function each(node, flags, get_collection, get_key, render_fn, fallback_f
var boundary = find_boundary(active_effect); var boundary = find_boundary(active_effect);
/** @type {Map<any, EachItem>} */ /** @type {Map<any, EachItem>} */
var pending_items = new Map(); var offscreen_items = new Map();
// TODO: ideally we could use derived for runes mode but because of the ability // TODO: ideally we could use derived for runes mode but because of the ability
// to use a store which can be mutated, we can't do that here as mutating a store // to use a store which can be mutated, we can't do that here as mutating a store
@ -164,7 +164,7 @@ export function each(node, flags, get_collection, get_key, render_fn, fallback_f
each_effect, each_effect,
array, array,
state, state,
pending_items, offscreen_items,
anchor, anchor,
render_fn, render_fn,
flags, flags,
@ -275,7 +275,7 @@ export function each(node, flags, get_collection, get_key, render_fn, fallback_f
value = array[i]; value = array[i];
key = get_key(value, i); key = get_key(value, i);
var existing = state.items.get(key) ?? pending_items.get(key); var existing = state.items.get(key) ?? offscreen_items.get(key);
if (existing) { if (existing) {
// update before reconciliation, to trigger any async updates // update before reconciliation, to trigger any async updates
@ -297,7 +297,7 @@ export function each(node, flags, get_collection, get_key, render_fn, fallback_f
true true
); );
pending_items.set(key, item); offscreen_items.set(key, item);
} }
} }
@ -332,7 +332,7 @@ export function each(node, flags, get_collection, get_key, render_fn, fallback_f
* @param {Effect} each_effect * @param {Effect} each_effect
* @param {Array<V>} array * @param {Array<V>} array
* @param {EachState} state * @param {EachState} state
* @param {Map<any, EachItem>} pending_items * @param {Map<any, EachItem>} offscreen_items
* @param {Element | Comment | Text} anchor * @param {Element | Comment | Text} anchor
* @param {(anchor: Node, item: MaybeSource<V>, index: number | Source<number>, collection: () => V[]) => void} render_fn * @param {(anchor: Node, item: MaybeSource<V>, index: number | Source<number>, collection: () => V[]) => void} render_fn
* @param {number} flags * @param {number} flags
@ -344,7 +344,7 @@ function reconcile(
each_effect, each_effect,
array, array,
state, state,
pending_items, offscreen_items,
anchor, anchor,
render_fn, render_fn,
flags, flags,
@ -406,10 +406,10 @@ function reconcile(
item = items.get(key); item = items.get(key);
if (item === undefined) { if (item === undefined) {
var pending = pending_items.get(key); var pending = offscreen_items.get(key);
if (pending !== undefined) { if (pending !== undefined) {
pending_items.delete(key); offscreen_items.delete(key);
items.set(key, pending); items.set(key, pending);
var next = prev && prev.next; var next = prev && prev.next;
@ -575,9 +575,11 @@ function reconcile(
each_effect.first = state.first && state.first.e; each_effect.first = state.first && state.first.e;
each_effect.last = prev && prev.e; each_effect.last = prev && prev.e;
for (var unused of pending_items.values()) { for (var unused of offscreen_items.values()) {
destroy_effect(unused.e); destroy_effect(unused.e);
} }
offscreen_items.clear();
} }
/** /**

Loading…
Cancel
Save