From 5fda0113b921bd5d38051b8bd48de07e7d8b2383 Mon Sep 17 00:00:00 2001 From: Rich Harris Date: Tue, 24 Jun 2025 09:16:05 -0400 Subject: [PATCH] make batch.#deferred private --- .../svelte/src/internal/client/reactivity/batch.js | 9 +++++++-- packages/svelte/src/internal/client/runtime.js | 10 ++-------- 2 files changed, 9 insertions(+), 10 deletions(-) diff --git a/packages/svelte/src/internal/client/reactivity/batch.js b/packages/svelte/src/internal/client/reactivity/batch.js index b136dede07..13dc64026f 100644 --- a/packages/svelte/src/internal/client/reactivity/batch.js +++ b/packages/svelte/src/internal/client/reactivity/batch.js @@ -1,5 +1,6 @@ /** @import { Derived, Effect, Source } from '#client' */ import { CLEAN, DIRTY } from '#client/constants'; +import { deferred } from '../../shared/utils.js'; import { flush_queued_effects, flush_queued_root_effects, @@ -45,7 +46,7 @@ export class Batch { /** @type {{ promise: Promise, resolve: (value?: any) => void, reject: (reason: unknown) => void } | null} */ // TODO replace with Promise.withResolvers once supported widely enough - deferred = null; + #deferred = null; /** @type {Effect[]} */ async_effects = []; @@ -164,7 +165,7 @@ export class Batch { flush_queued_effects(render_effects); flush_queued_effects(effects); - this.deferred?.resolve(); + this.#deferred?.resolve(); } } else { for (const e of this.render_effects) set_signal_status(e, CLEAN); @@ -280,6 +281,10 @@ export class Batch { return false; } + settled() { + return (this.#deferred ??= deferred()).promise; + } + static ensure() { if (current_batch === null) { if (batches.size === 0) { diff --git a/packages/svelte/src/internal/client/runtime.js b/packages/svelte/src/internal/client/runtime.js index 3b6886467d..8c1d706fa5 100644 --- a/packages/svelte/src/internal/client/runtime.js +++ b/packages/svelte/src/internal/client/runtime.js @@ -1,12 +1,6 @@ /** @import { Derived, Effect, Reaction, Signal, Source, Value } from '#client' */ import { DEV } from 'esm-env'; -import { - deferred, - define_property, - get_descriptors, - get_prototype_of, - index_of -} from '../shared/utils.js'; +import { define_property, get_descriptors, get_prototype_of, index_of } from '../shared/utils.js'; import { destroy_block_effect_children, destroy_effect_children, @@ -759,7 +753,7 @@ export async function tick() { * @returns {Promise} */ export function settled() { - return (Batch.ensure().deferred ??= deferred()).promise; + return Batch.ensure().settled(); } /**