From 65223363e970ea7ee81c95d81bc10e1306fdba20 Mon Sep 17 00:00:00 2001 From: Simon H <5968653+dummdidumm@users.noreply.github.com> Date: Fri, 10 May 2024 18:26:09 +0200 Subject: [PATCH] fix: handle falsy prop aliases correctly (#11539) fixes #10854 --- .changeset/strong-apricots-destroy.md | 5 +++++ packages/svelte/src/compiler/phases/2-analyze/index.js | 2 +- .../runtime-runes/samples/props-alias-weird/Child.svelte | 5 +++++ .../tests/runtime-runes/samples/props-alias-weird/_config.js | 5 +++++ .../runtime-runes/samples/props-alias-weird/main.svelte | 5 +++++ 5 files changed, 21 insertions(+), 1 deletion(-) create mode 100644 .changeset/strong-apricots-destroy.md create mode 100644 packages/svelte/tests/runtime-runes/samples/props-alias-weird/Child.svelte create mode 100644 packages/svelte/tests/runtime-runes/samples/props-alias-weird/_config.js create mode 100644 packages/svelte/tests/runtime-runes/samples/props-alias-weird/main.svelte diff --git a/.changeset/strong-apricots-destroy.md b/.changeset/strong-apricots-destroy.md new file mode 100644 index 000000000000..dfbf4aab2aa1 --- /dev/null +++ b/.changeset/strong-apricots-destroy.md @@ -0,0 +1,5 @@ +--- +"svelte": patch +--- + +fix: handle falsy prop aliases correctly diff --git a/packages/svelte/src/compiler/phases/2-analyze/index.js b/packages/svelte/src/compiler/phases/2-analyze/index.js index e4d6f6a4db9c..2b8a0e9b453b 100644 --- a/packages/svelte/src/compiler/phases/2-analyze/index.js +++ b/packages/svelte/src/compiler/phases/2-analyze/index.js @@ -967,7 +967,7 @@ const runes_scope_tweaker = { const alias = property.key.type === 'Identifier' ? property.key.name - : /** @type {string} */ (/** @type {import('estree').Literal} */ (property.key).value); + : String(/** @type {import('estree').Literal} */ (property.key).value); let initial = property.value.type === 'AssignmentPattern' ? property.value.right : null; const binding = /** @type {import('#compiler').Binding} */ (state.scope.get(name)); diff --git a/packages/svelte/tests/runtime-runes/samples/props-alias-weird/Child.svelte b/packages/svelte/tests/runtime-runes/samples/props-alias-weird/Child.svelte new file mode 100644 index 000000000000..1667ef600a5e --- /dev/null +++ b/packages/svelte/tests/runtime-runes/samples/props-alias-weird/Child.svelte @@ -0,0 +1,5 @@ + + +{zero} {one} diff --git a/packages/svelte/tests/runtime-runes/samples/props-alias-weird/_config.js b/packages/svelte/tests/runtime-runes/samples/props-alias-weird/_config.js new file mode 100644 index 000000000000..f2f80919c2c5 --- /dev/null +++ b/packages/svelte/tests/runtime-runes/samples/props-alias-weird/_config.js @@ -0,0 +1,5 @@ +import { test } from '../../test'; + +export default test({ + html: `0 1` +}); diff --git a/packages/svelte/tests/runtime-runes/samples/props-alias-weird/main.svelte b/packages/svelte/tests/runtime-runes/samples/props-alias-weird/main.svelte new file mode 100644 index 000000000000..de7a6f38f915 --- /dev/null +++ b/packages/svelte/tests/runtime-runes/samples/props-alias-weird/main.svelte @@ -0,0 +1,5 @@ + + +