From 0ef587aa6a239dd5e5f6345eaa8c7a163dd37ebc Mon Sep 17 00:00:00 2001 From: Rich Harris Date: Tue, 1 Jul 2025 13:57:54 -0400 Subject: [PATCH] explanatory comment --- .../svelte/src/internal/client/reactivity/props.js | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/packages/svelte/src/internal/client/reactivity/props.js b/packages/svelte/src/internal/client/reactivity/props.js index 21c092316d..f51291b1cc 100644 --- a/packages/svelte/src/internal/client/reactivity/props.js +++ b/packages/svelte/src/internal/client/reactivity/props.js @@ -322,7 +322,15 @@ export function prop(props, key, flags, fallback) { } else { getter = () => { var value = /** @type {V} */ (props[key]); - if (value !== undefined) fallback_value = /** @type {V} */ (undefined); + + if (value !== undefined) { + // in legacy mode, we don't revert to the fallback value + // if the prop goes from defined to undefined. The easiest + // way to model this is to make the fallback undefined + // as soon as the prop has a value + fallback_value = /** @type {V} */ (undefined); + } + return value === undefined ? fallback_value : value; }; }