From 75d6e72e9974739892fdf01e14a70ccbe528dbe2 Mon Sep 17 00:00:00 2001 From: David Roizenman Date: Thu, 18 Dec 2025 18:58:27 -0800 Subject: [PATCH] fix: use current value for UNINITIALIZED sources in Batch.apply --- packages/svelte/src/internal/client/reactivity/batch.js | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/packages/svelte/src/internal/client/reactivity/batch.js b/packages/svelte/src/internal/client/reactivity/batch.js index 6f941c7ff2..37951e9d74 100644 --- a/packages/svelte/src/internal/client/reactivity/batch.js +++ b/packages/svelte/src/internal/client/reactivity/batch.js @@ -21,6 +21,7 @@ import { MANAGED_EFFECT } from '#client/constants'; import { async_mode_flag } from '../../flags/index.js'; +import { UNINITIALIZED } from '../../../constants.js'; import { deferred, define_property } from '../../shared/utils.js'; import { active_effect, @@ -320,7 +321,7 @@ export class Batch { // Don't save errors in `batch_values`, or they won't be thrown in `runtime.js#get` if ((source.f & ERROR_VALUE) === 0) { this.current.set(source, source.v); - batch_values?.set(source, source.v); + batch_values?.set(source, source.v === UNINITIALIZED ? undefined : source.v); } } @@ -546,7 +547,7 @@ export class Batch { for (const [source, previous] of batch.previous) { if (!batch_values.has(source)) { - batch_values.set(source, previous); + batch_values.set(source, previous === UNINITIALIZED ? undefined : previous); } } }