partial fix

aa-coordination
Rich Harris 7 months ago
parent 012cdebed6
commit 6025193b98

@ -93,8 +93,8 @@ export function boundary(node, props, children) {
var hydrate_open = hydrate_node;
var is_creating_fallback = false;
/** @type {Array<() => void>} */
var callbacks = [];
/** @type {Set<() => void>} */
var callbacks = new Set();
/** @type {Effect[]} */
var render_effects = [];
@ -155,8 +155,8 @@ export function boundary(node, props, children) {
}
}
run_all(callbacks);
callbacks.length = 0;
for (const fn of callbacks) fn();
callbacks.clear();
if (pending_effect) {
pause_effect(pending_effect, () => {
@ -205,7 +205,7 @@ export function boundary(node, props, children) {
}
if (input === ADD_CALLBACK) {
callbacks.push(payload);
callbacks.add(payload);
return;
}

@ -401,7 +401,17 @@ function reconcile(
for (i = 0; i < length; i += 1) {
value = array[i];
key = get_key(value, i);
item = items.get(key) ?? pending_items.get(key);
item = items.get(key);
if (item === undefined) {
var pending = pending_items.get(key);
if (pending !== undefined) {
pending_items.delete(key);
items.set(key, pending);
item = pending;
}
}
if (item === undefined) {
var child_anchor = current ? /** @type {TemplateNode} */ (current.e.nodes_start) : anchor;
@ -550,12 +560,17 @@ function reconcile(
}
// TODO this seems super weird... should be `each_effect`, but that doesn't seem to work?
if (active_effect !== null) {
active_effect.first = state.first && state.first.e;
active_effect.last = prev && prev.e;
}
// if (active_effect !== null) {
// active_effect.first = state.first && state.first.e;
// active_effect.last = prev && prev.e;
// }
pending_items.clear();
each_effect.first = state.first && state.first.e;
each_effect.last = prev && prev.e;
for (var unused of pending_items.values()) {
destroy_effect(unused.e);
}
}
/**

Loading…
Cancel
Save