diff --git a/.changeset/rare-falcons-admire.md b/.changeset/rare-falcons-admire.md new file mode 100644 index 000000000000..ad13dd1cbca7 --- /dev/null +++ b/.changeset/rare-falcons-admire.md @@ -0,0 +1,5 @@ +--- +'svelte': patch +--- + +fix: silence assignment warning on more function bindings diff --git a/packages/svelte/src/compiler/phases/3-transform/client/visitors/AssignmentExpression.js b/packages/svelte/src/compiler/phases/3-transform/client/visitors/AssignmentExpression.js index 150c56e166c1..850cd83b15b6 100644 --- a/packages/svelte/src/compiler/phases/3-transform/client/visitors/AssignmentExpression.js +++ b/packages/svelte/src/compiler/phases/3-transform/client/visitors/AssignmentExpression.js @@ -165,7 +165,9 @@ function build_assignment(operator, left, right, context) { path.at(-1) === 'SvelteComponent' || (path.at(-1) === 'ArrowFunctionExpression' && path.at(-2) === 'SequenceExpression' && - (path.at(-3) === 'Component' || path.at(-3) === 'SvelteComponent')) + (path.at(-3) === 'Component' || + path.at(-3) === 'SvelteComponent' || + path.at(-3) === 'BindDirective')) ) { should_transform = false; } diff --git a/packages/svelte/tests/html_equal.js b/packages/svelte/tests/html_equal.js index 0ebf1fa6bd53..4c9e2a725332 100644 --- a/packages/svelte/tests/html_equal.js +++ b/packages/svelte/tests/html_equal.js @@ -86,7 +86,7 @@ export function normalize_html( clean_children(node); return node.innerHTML; } catch (err) { - throw new Error(`Failed to normalize HTML:\n${html}`); + throw new Error(`Failed to normalize HTML:\n${html}\nCause: ${err}`); } } diff --git a/packages/svelte/tests/runtime-runes/samples/proxy-coercive-assignment-warning/_config.js b/packages/svelte/tests/runtime-runes/samples/proxy-coercive-assignment-warning/_config.js index f0292274725e..4462f492fac9 100644 --- a/packages/svelte/tests/runtime-runes/samples/proxy-coercive-assignment-warning/_config.js +++ b/packages/svelte/tests/runtime-runes/samples/proxy-coercive-assignment-warning/_config.js @@ -6,7 +6,7 @@ export default test({ dev: true }, - html: `
x
`, + html: `
x
`, test({ assert, target, warnings }) { const btn = target.querySelector('button'); @@ -15,13 +15,13 @@ export default test({ flushSync(() => btn.click()); assert.htmlEqual( target.innerHTML, - `
x
` + `
x
` ); flushSync(() => btn.click()); assert.htmlEqual( target.innerHTML, - `
x
` + `
x
` ); const input = target.querySelector('input'); @@ -30,7 +30,7 @@ export default test({ flushSync(() => input.dispatchEvent(new Event('change', { bubbles: true }))); assert.deepEqual(warnings, [ - 'Assignment to `items` property (main.svelte:8:24) will evaluate to the right-hand side, not the value of `items` following the assignment. This may result in unexpected behaviour.' + 'Assignment to `items` property (main.svelte:9:24) will evaluate to the right-hand side, not the value of `items` following the assignment. This may result in unexpected behaviour.' ]); } }); diff --git a/packages/svelte/tests/runtime-runes/samples/proxy-coercive-assignment-warning/main.svelte b/packages/svelte/tests/runtime-runes/samples/proxy-coercive-assignment-warning/main.svelte index ad94c4e56e03..a79fe873b7e9 100644 --- a/packages/svelte/tests/runtime-runes/samples/proxy-coercive-assignment-warning/main.svelte +++ b/packages/svelte/tests/runtime-runes/samples/proxy-coercive-assignment-warning/main.svelte @@ -3,6 +3,7 @@ let entries = $state([]); let object = $state({ items: null, group: [] }); + let elementFunBind = $state();