diff --git a/packages/svelte/src/internal/client/dev/tracing.js b/packages/svelte/src/internal/client/dev/tracing.js index a920b5ecf3..7ba7ed4578 100644 --- a/packages/svelte/src/internal/client/dev/tracing.js +++ b/packages/svelte/src/internal/client/dev/tracing.js @@ -20,23 +20,6 @@ function log_entry(signal, traces = []) { return; } - if (signal.trace) { - var previous_captured_signals = captured_signals; - var captured = new Set(); - set_captured_signals(captured); - - try { - untrack(signal.trace); - } finally { - set_captured_signals(previous_captured_signals); - } - - if (captured.size > 0) { - for (const dep of captured) log_entry(dep); - return; - } - } - const type = (signal.f & DERIVED) !== 0 ? '$derived' : '$state'; const current_reaction = /** @type {Reaction} */ (active_reaction); const dirty = signal.wv > current_reaction.wv || current_reaction.wv === 0; diff --git a/packages/svelte/src/internal/client/dom/blocks/each.js b/packages/svelte/src/internal/client/dom/blocks/each.js index 954dcb2214..e8f00546d0 100644 --- a/packages/svelte/src/internal/client/dom/blocks/each.js +++ b/packages/svelte/src/internal/client/dom/blocks/each.js @@ -524,16 +524,6 @@ function create_item( var v = reactive ? (mutable ? mutable_source(value) : source(value)) : value; var i = (flags & EACH_INDEX_REACTIVE) === 0 ? index : source(index); - if (DEV && reactive) { - // For tracing purposes, we need to link the source signal we create with the - // collection + index so that tracing works as intended - /** @type {Value} */ (v).trace = () => { - var collection_index = typeof i === 'number' ? index : i.v; - // eslint-disable-next-line @typescript-eslint/no-unused-expressions - get_collection()[collection_index]; - }; - } - /** @type {EachItem} */ var item = { i, diff --git a/packages/svelte/src/internal/client/reactivity/sources.js b/packages/svelte/src/internal/client/reactivity/sources.js index 5473e1a116..2f02e75e16 100644 --- a/packages/svelte/src/internal/client/reactivity/sources.js +++ b/packages/svelte/src/internal/client/reactivity/sources.js @@ -66,7 +66,6 @@ export function source(v, stack) { if (DEV && tracing_mode_flag) { signal.created = stack ?? get_stack('CreatedAt'); - signal.trace = null; } return signal; diff --git a/packages/svelte/src/internal/client/reactivity/types.d.ts b/packages/svelte/src/internal/client/reactivity/types.d.ts index 05a0148ca6..cb72ecf496 100644 --- a/packages/svelte/src/internal/client/reactivity/types.d.ts +++ b/packages/svelte/src/internal/client/reactivity/types.d.ts @@ -22,7 +22,6 @@ export interface Value extends Signal { updated?: Error | null; trace_need_increase?: boolean; trace_v?: V; - trace?: null | (() => void); } export interface Reaction extends Signal { diff --git a/packages/svelte/src/internal/client/runtime.js b/packages/svelte/src/internal/client/runtime.js index d4e99b4bad..d3f3ed621d 100644 --- a/packages/svelte/src/internal/client/runtime.js +++ b/packages/svelte/src/internal/client/runtime.js @@ -779,26 +779,21 @@ export function get(signal) { active_reaction !== null && tracing_expressions.reaction === active_reaction ) { - // Used when mapping state between special blocks like `each` - if (signal.trace) { - signal.trace(); - } else { - var trace = get_stack('TracedAt'); + var trace = get_stack('TracedAt'); - if (trace) { - var traces = tracing_expressions.entries.get(signal); + if (trace) { + var traces = tracing_expressions.entries.get(signal); - if (traces === undefined) { - tracing_expressions.entries.set(signal, (traces = [])); - } + if (traces === undefined) { + tracing_expressions.entries.set(signal, (traces = [])); + } - var last = traces.at(-1); + var last = traces.at(-1); - // traces can be duplicated, e.g. by `snapshot` invoking both - // both `getOwnPropertyDescriptor` and `get` traps at once - if (trace.stack !== last?.stack) { - traces.push(trace); - } + // traces can be duplicated, e.g. by `snapshot` invoking both + // both `getOwnPropertyDescriptor` and `get` traps at once + if (trace.stack !== last?.stack) { + traces.push(trace); } } }