From 016f02b721509b4c2a74384cb503b0717bb57a5e Mon Sep 17 00:00:00 2001 From: Rich Harris Date: Tue, 10 Jun 2025 16:42:58 -0400 Subject: [PATCH] tweak implementation --- packages/svelte/src/internal/client/proxy.js | 35 +++++++++++--------- 1 file changed, 19 insertions(+), 16 deletions(-) diff --git a/packages/svelte/src/internal/client/proxy.js b/packages/svelte/src/internal/client/proxy.js index f25d940fe3..a9d2eedc1c 100644 --- a/packages/svelte/src/internal/client/proxy.js +++ b/packages/svelte/src/internal/client/proxy.js @@ -22,15 +22,9 @@ const regex_is_valid_identifier = /^[a-zA-Z_$][a-zA-Z_$0-9]*$/; * @template T * @param {T} value * @param {string} [path] - * @param {boolean} change_path * @returns {T} */ -export function proxy(value, path, change_path = false) { - if (DEV && change_path) { - // @ts-expect-error - value?.[PROXY_PATH_SYMBOL]?.(path); - } - +export function proxy(value, path) { // if non-proxyable, or is already a proxy, return `value` if (typeof value !== 'object' || value === null || STATE_SYMBOL in value) { return value; @@ -261,19 +255,28 @@ export function proxy(value, path, change_path = false) { if (s === undefined) { if (!has || get_descriptor(target, prop)?.writable) { s = with_parent(() => source(undefined, stack)); - s = DEV ? tag(s, to_trace_name(prop)) : s; - set( - s, - with_parent(() => proxy(value, to_trace_name(prop), true)) - ); + var p = with_parent(() => proxy(value, to_trace_name(prop))); + + if (DEV) { + var label = to_trace_name(prop); + tag(s, label); + p?.[PROXY_PATH_SYMBOL]?.(label); + } + + set(s, p); sources.set(prop, s); } } else { has = s.v !== UNINITIALIZED; - set( - s, - with_parent(() => proxy(value, to_trace_name(prop), true)) - ); + + p = with_parent(() => proxy(value, to_trace_name(prop))); + + if (DEV) { + label = to_trace_name(prop); + p?.[PROXY_PATH_SYMBOL]?.(label); + } + + set(s, p); } var descriptor = Reflect.getOwnPropertyDescriptor(target, prop);