From 5a10df31be7cdae42c42baba5201f60cb9a72fa5 Mon Sep 17 00:00:00 2001 From: Nguyen Tran Date: Fri, 22 Dec 2023 01:27:11 -0500 Subject: [PATCH 1/3] Fix issue on assiging prop values as defaults of other props --- .../3-transform/client/visitors/javascript-runes.js | 1 + .../samples/assign-prop-to-prop/Test.svelte | 9 +++++++++ .../runtime-runes/samples/assign-prop-to-prop/_config.js | 6 ++++++ .../samples/assign-prop-to-prop/main.svelte | 5 +++++ 4 files changed, 21 insertions(+) create mode 100644 packages/svelte/tests/runtime-runes/samples/assign-prop-to-prop/Test.svelte create mode 100644 packages/svelte/tests/runtime-runes/samples/assign-prop-to-prop/_config.js create mode 100644 packages/svelte/tests/runtime-runes/samples/assign-prop-to-prop/main.svelte diff --git a/packages/svelte/src/compiler/phases/3-transform/client/visitors/javascript-runes.js b/packages/svelte/src/compiler/phases/3-transform/client/visitors/javascript-runes.js index 0526c9c4bf2c..b9998e877a24 100644 --- a/packages/svelte/src/compiler/phases/3-transform/client/visitors/javascript-runes.js +++ b/packages/svelte/src/compiler/phases/3-transform/client/visitors/javascript-runes.js @@ -179,6 +179,7 @@ export const javascript_visitors_runes = { id = property.value.left; initial = property.value.right; } + initial = initial ? /** @type {import('estree').Expression} */ (visit(initial)) : undefined; assert.equal(id.type, 'Identifier'); diff --git a/packages/svelte/tests/runtime-runes/samples/assign-prop-to-prop/Test.svelte b/packages/svelte/tests/runtime-runes/samples/assign-prop-to-prop/Test.svelte new file mode 100644 index 000000000000..0bf0649b9ebe --- /dev/null +++ b/packages/svelte/tests/runtime-runes/samples/assign-prop-to-prop/Test.svelte @@ -0,0 +1,9 @@ + + +

{a}

+

{b}

+

{c}

+

{d}

\ No newline at end of file diff --git a/packages/svelte/tests/runtime-runes/samples/assign-prop-to-prop/_config.js b/packages/svelte/tests/runtime-runes/samples/assign-prop-to-prop/_config.js new file mode 100644 index 000000000000..130cab292a70 --- /dev/null +++ b/packages/svelte/tests/runtime-runes/samples/assign-prop-to-prop/_config.js @@ -0,0 +1,6 @@ +import { test } from '../../test'; + +export default test({ + html: `

5

5

25

65

`, +}); + diff --git a/packages/svelte/tests/runtime-runes/samples/assign-prop-to-prop/main.svelte b/packages/svelte/tests/runtime-runes/samples/assign-prop-to-prop/main.svelte new file mode 100644 index 000000000000..0ff0ef524ec7 --- /dev/null +++ b/packages/svelte/tests/runtime-runes/samples/assign-prop-to-prop/main.svelte @@ -0,0 +1,5 @@ + + + \ No newline at end of file From cd681eb89d39ec38afcaa444af7937aee2db79c0 Mon Sep 17 00:00:00 2001 From: Nguyen Tran <88808276+ngtr6788@users.noreply.github.com> Date: Fri, 22 Dec 2023 15:03:31 +0000 Subject: [PATCH 2/3] Prettier --- .../phases/3-transform/client/visitors/javascript-runes.js | 4 +++- .../runtime-runes/samples/assign-prop-to-prop/_config.js | 3 +-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/packages/svelte/src/compiler/phases/3-transform/client/visitors/javascript-runes.js b/packages/svelte/src/compiler/phases/3-transform/client/visitors/javascript-runes.js index b9998e877a24..88c8c4c18a48 100644 --- a/packages/svelte/src/compiler/phases/3-transform/client/visitors/javascript-runes.js +++ b/packages/svelte/src/compiler/phases/3-transform/client/visitors/javascript-runes.js @@ -179,7 +179,9 @@ export const javascript_visitors_runes = { id = property.value.left; initial = property.value.right; } - initial = initial ? /** @type {import('estree').Expression} */ (visit(initial)) : undefined; + initial = initial + ? /** @type {import('estree').Expression} */ (visit(initial)) + : undefined; assert.equal(id.type, 'Identifier'); diff --git a/packages/svelte/tests/runtime-runes/samples/assign-prop-to-prop/_config.js b/packages/svelte/tests/runtime-runes/samples/assign-prop-to-prop/_config.js index 130cab292a70..f68a56cfbc57 100644 --- a/packages/svelte/tests/runtime-runes/samples/assign-prop-to-prop/_config.js +++ b/packages/svelte/tests/runtime-runes/samples/assign-prop-to-prop/_config.js @@ -1,6 +1,5 @@ import { test } from '../../test'; export default test({ - html: `

5

5

25

65

`, + html: `

5

5

25

65

` }); - From df894e882eafbee284f639cf96b29d837328b1cf Mon Sep 17 00:00:00 2001 From: Nguyen Tran <88808276+ngtr6788@users.noreply.github.com> Date: Fri, 22 Dec 2023 15:05:17 +0000 Subject: [PATCH 3/3] Add changeset --- .changeset/itchy-kings-deliver.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/itchy-kings-deliver.md diff --git a/.changeset/itchy-kings-deliver.md b/.changeset/itchy-kings-deliver.md new file mode 100644 index 000000000000..1a188b77f3d0 --- /dev/null +++ b/.changeset/itchy-kings-deliver.md @@ -0,0 +1,5 @@ +--- +'svelte': patch +--- + +Fix issue with assigning prop values as defaults of other props