diff --git a/.changeset/unlucky-steaks-warn.md b/.changeset/unlucky-steaks-warn.md new file mode 100644 index 000000000..3a90e8a4f --- /dev/null +++ b/.changeset/unlucky-steaks-warn.md @@ -0,0 +1,5 @@ +--- +"svelte": patch +--- + +fix: deduplicate generated props and action arg names diff --git a/packages/svelte/src/compiler/phases/3-transform/client/visitors/template.js b/packages/svelte/src/compiler/phases/3-transform/client/visitors/template.js index f54113375..af4020d20 100644 --- a/packages/svelte/src/compiler/phases/3-transform/client/visitors/template.js +++ b/packages/svelte/src/compiler/phases/3-transform/client/visitors/template.js @@ -2668,7 +2668,7 @@ export const template_visitors = { const params = [b.id('$$node')]; if (node.expression) { - params.push(b.id('$$props')); + params.push(b.id('$$action_arg')); } /** @type {import('estree').Expression[]} */ diff --git a/packages/svelte/tests/runtime-legacy/samples/action-component/_config.js b/packages/svelte/tests/runtime-legacy/samples/action-component/_config.js new file mode 100644 index 000000000..cd4774d4d --- /dev/null +++ b/packages/svelte/tests/runtime-legacy/samples/action-component/_config.js @@ -0,0 +1,14 @@ +import { tick } from 'svelte'; +import { test } from '../../test'; + +export default test({ + accessors: false, + async test({ assert, target }) { + assert.htmlEqual(target.innerHTML, '
'); + + const button = target.querySelector('button'); + button?.click(); + await tick(); + assert.htmlEqual(target.innerHTML, '
'); + } +}); diff --git a/packages/svelte/tests/runtime-legacy/samples/action-component/main.svelte b/packages/svelte/tests/runtime-legacy/samples/action-component/main.svelte new file mode 100644 index 000000000..54847ba8d --- /dev/null +++ b/packages/svelte/tests/runtime-legacy/samples/action-component/main.svelte @@ -0,0 +1,17 @@ + + + + diff --git a/packages/svelte/tests/runtime-legacy/samples/action-component/sub.svelte b/packages/svelte/tests/runtime-legacy/samples/action-component/sub.svelte new file mode 100644 index 000000000..53d2674ea --- /dev/null +++ b/packages/svelte/tests/runtime-legacy/samples/action-component/sub.svelte @@ -0,0 +1,6 @@ + + +