From 18a790cb64baf47ac8f70ae652b8af39a3b97962 Mon Sep 17 00:00:00 2001 From: Rich Harris Date: Sat, 30 Aug 2025 09:10:49 -0400 Subject: [PATCH] simplify --- .../svelte/src/internal/client/dom/blocks/each.js | 4 ++-- .../svelte/src/internal/client/dom/blocks/if.js | 4 ++-- .../svelte/src/internal/client/dom/blocks/key.js | 4 ++-- .../internal/client/dom/blocks/svelte-component.js | 4 ++-- .../svelte/src/internal/client/reactivity/batch.js | 13 ++++++------- 5 files changed, 14 insertions(+), 15 deletions(-) diff --git a/packages/svelte/src/internal/client/dom/blocks/each.js b/packages/svelte/src/internal/client/dom/blocks/each.js index 28c706134a..006bf09257 100644 --- a/packages/svelte/src/internal/client/dom/blocks/each.js +++ b/packages/svelte/src/internal/client/dom/blocks/each.js @@ -187,7 +187,7 @@ export function each(node, flags, get_collection, get_key, render_fn, fallback_f } } - var b = block(() => { + block(() => { // store a reference to the effect so that we can update the start/end nodes in reconciliation each_effect ??= /** @type {Effect} */ (active_effect); @@ -310,7 +310,7 @@ export function each(node, flags, get_collection, get_key, render_fn, fallback_f } } - batch.add_callback(() => b, commit); + batch.add_callback(commit); } else { commit(); } diff --git a/packages/svelte/src/internal/client/dom/blocks/if.js b/packages/svelte/src/internal/client/dom/blocks/if.js index 1a69d59b87..f418d46538 100644 --- a/packages/svelte/src/internal/client/dom/blocks/if.js +++ b/packages/svelte/src/internal/client/dom/blocks/if.js @@ -124,7 +124,7 @@ export function if_block(node, fn, elseif = false) { if (active) batch.skipped_effects.delete(active); if (inactive) batch.skipped_effects.add(inactive); - batch.add_callback(() => b, commit); + batch.add_callback(commit); } else { commit(); } @@ -135,7 +135,7 @@ export function if_block(node, fn, elseif = false) { } }; - var b = block(() => { + block(() => { has_branch = false; fn(set_branch); if (!has_branch) { diff --git a/packages/svelte/src/internal/client/dom/blocks/key.js b/packages/svelte/src/internal/client/dom/blocks/key.js index c0b12f4017..5e3c42019f 100644 --- a/packages/svelte/src/internal/client/dom/blocks/key.js +++ b/packages/svelte/src/internal/client/dom/blocks/key.js @@ -52,7 +52,7 @@ export function key(node, get_key, render_fn) { effect = pending_effect; } - var b = block(() => { + block(() => { if (changed(key, (key = get_key()))) { var target = anchor; @@ -66,7 +66,7 @@ export function key(node, get_key, render_fn) { pending_effect = branch(() => render_fn(target)); if (defer) { - /** @type {Batch} */ (current_batch).add_callback(() => b, commit); + /** @type {Batch} */ (current_batch).add_callback(commit); } else { commit(); } diff --git a/packages/svelte/src/internal/client/dom/blocks/svelte-component.js b/packages/svelte/src/internal/client/dom/blocks/svelte-component.js index fa7356eae6..2697722b39 100644 --- a/packages/svelte/src/internal/client/dom/blocks/svelte-component.js +++ b/packages/svelte/src/internal/client/dom/blocks/svelte-component.js @@ -51,7 +51,7 @@ export function component(node, get_component, render_fn) { pending_effect = null; } - var b = block(() => { + block(() => { if (component === (component = get_component())) return; var defer = should_defer_append(); @@ -70,7 +70,7 @@ export function component(node, get_component, render_fn) { } if (defer) { - /** @type {Batch} */ (current_batch).add_callback(() => b, commit); + /** @type {Batch} */ (current_batch).add_callback(commit); } else { commit(); } diff --git a/packages/svelte/src/internal/client/reactivity/batch.js b/packages/svelte/src/internal/client/reactivity/batch.js index 9ac9987f21..b720c71a03 100644 --- a/packages/svelte/src/internal/client/reactivity/batch.js +++ b/packages/svelte/src/internal/client/reactivity/batch.js @@ -97,7 +97,7 @@ export class Batch { * and append new ones by calling the functions added inside (if/each/key/etc) blocks. * Key is a function that returns the block effect because #callbacks will be called before * the block effect reference exists, so we need to capture it in a closure. - * @type {Map<() => Effect, () => void>} + * @type {Map void>} */ #callbacks = new Map(); @@ -229,7 +229,7 @@ export class Batch { // is outstanding from a previous flush, commit if (this.#async_effects.length === 0 && this.#pending === 0) { if (superseded_batches.length > 0) { - const own = [...this.#callbacks.keys()].map((c) => c()); + const own = [...this.#callbacks.keys()]; // A superseded batch could have callbacks for e.g. destroying if blocks // that are not part of the current batch because it already happened in the prior one, // and the corresponding block effect therefore returning early because nothing was changed from its @@ -237,9 +237,9 @@ export class Batch { // We do it from newest to oldest to ensure the correct callback is applied. for (const batch of superseded_batches.reverse()) { for (const [effect, cb] of batch.#callbacks) { - if (!own.includes(effect())) { + if (!own.includes(effect)) { cb(); - own.push(effect()); + own.push(effect); } } batch.remove(); @@ -475,11 +475,10 @@ export class Batch { } /** - * @param {() => Effect} effect * @param {() => void} fn */ - add_callback(effect, fn) { - this.#callbacks.set(effect, fn); + add_callback(fn) { + this.#callbacks.set(/** @type {Effect} */ (active_effect), fn); } settled() {