From 5a899c2244598c8b177e05dde38e54e180a50e42 Mon Sep 17 00:00:00 2001 From: Rich Harris Date: Wed, 29 Nov 2023 06:00:58 -0500 Subject: [PATCH] track reassignments separately from mutations --- packages/svelte/src/compiler/phases/scope.js | 5 ++++- packages/svelte/src/compiler/types/index.d.ts | 1 + 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/packages/svelte/src/compiler/phases/scope.js b/packages/svelte/src/compiler/phases/scope.js index 4f836f8f7a..4e5e17fc1d 100644 --- a/packages/svelte/src/compiler/phases/scope.js +++ b/packages/svelte/src/compiler/phases/scope.js @@ -638,7 +638,10 @@ export function create_scopes(ast, root, allow_reactive_declarations, parent) { } else { extract_identifiers(node).forEach((identifier) => { const binding = scope.get(identifier.name); - if (binding) binding.mutated = true; + if (binding) { + binding.mutated = true; + binding.reassigned = true; + } }); } } diff --git a/packages/svelte/src/compiler/types/index.d.ts b/packages/svelte/src/compiler/types/index.d.ts index 2c5480eb7f..4bca4d1d4a 100644 --- a/packages/svelte/src/compiler/types/index.d.ts +++ b/packages/svelte/src/compiler/types/index.d.ts @@ -269,6 +269,7 @@ export interface Binding { is_called: boolean; references: { node: Identifier; path: SvelteNode[] }[]; mutated: boolean; + reassigned: boolean; scope: Scope; /** For `legacy_reactive`: its reactive dependencies */ legacy_dependencies: Binding[];