From caf5fd5e3d6af95eaea66482b8408bcdecb736a3 Mon Sep 17 00:00:00 2001 From: Dominic Gannaway Date: Wed, 10 Jan 2024 15:57:31 +0000 Subject: [PATCH 1/2] fix: improve template literal expression output generation --- .changeset/eighty-days-cheat.md | 5 ++++ .../3-transform/client/visitors/template.js | 8 +++++ packages/svelte/src/internal/client/render.js | 2 +- .../samples/action-duplicate/output.json | 2 +- .../samples/action-with-call/output.json | 2 +- .../action-with-identifier/output.json | 2 +- .../samples/action-with-literal/output.json | 2 +- .../parser-legacy/samples/action/output.json | 2 +- .../samples/animation/output.json | 2 +- .../attribute-class-directive/output.json | 2 +- .../attribute-containing-solidus/output.json | 2 +- .../attribute-curly-bracket/output.json | 2 +- .../attribute-dynamic-boolean/output.json | 2 +- .../samples/attribute-dynamic/output.json | 2 +- .../samples/attribute-empty/output.json | 2 +- .../samples/attribute-escaped/output.json | 2 +- .../samples/attribute-multiple/output.json | 2 +- .../samples/attribute-shorthand/output.json | 2 +- .../attribute-static-boolean/output.json | 2 +- .../samples/attribute-static/output.json | 2 +- .../output.json | 6 ++-- .../output.json | 2 +- .../output.json | 2 +- .../attribute-style-directive/output.json | 2 +- .../samples/attribute-style/output.json | 2 +- .../samples/attribute-unquoted/output.json | 2 +- .../attribute-with-whitespace/output.json | 2 +- .../samples/await-catch/output.json | 2 +- .../samples/await-then-catch/output.json | 2 +- .../samples/binding-shorthand/output.json | 2 +- .../parser-legacy/samples/binding/output.json | 2 +- .../samples/comment-with-ignores/output.json | 7 +++-- .../parser-legacy/samples/comment/output.json | 2 +- .../samples/component-dynamic/output.json | 2 +- .../convert-entities-in-element/output.json | 2 +- .../samples/convert-entities/output.json | 2 +- .../parser-legacy/samples/css/output.json | 2 +- .../dynamic-element-string/output.json | 2 +- .../dynamic-element-variable/output.json | 2 +- .../samples/dynamic-import/output.json | 2 +- .../each-block-destructured/output.json | 2 +- .../samples/each-block-else/output.json | 2 +- .../samples/each-block-indexed/output.json | 2 +- .../samples/each-block-keyed/output.json | 2 +- .../samples/each-block/output.json | 2 +- .../output.json | 2 +- .../element-with-attribute/output.json | 2 +- .../samples/element-with-mustache/output.json | 2 +- .../samples/element-with-text/output.json | 2 +- .../samples/elements/output.json | 2 +- .../samples/event-handler/output.json | 2 +- .../samples/if-block-else/output.json | 2 +- .../samples/if-block-elseif/output.json | 2 +- .../samples/if-block/output.json | 2 +- .../samples/implicitly-closed-li/output.json | 2 +- .../samples/javascript-comments/output.json | 2 +- .../parser-legacy/samples/nbsp/output.json | 2 +- .../no-error-if-before-closing/output.json | 2 +- .../samples/raw-mustaches/output.json | 2 +- .../parser-legacy/samples/refs/output.json | 2 +- .../output.json | 2 +- .../samples/script-comment-only/output.json | 2 +- .../output.json | 2 +- .../parser-legacy/samples/script/output.json | 2 +- .../samples/self-closing-element/output.json | 2 +- .../samples/self-reference/output.json | 2 +- .../samples/slotted-element/output.json | 2 +- .../space-between-mustaches/output.json | 2 +- .../parser-legacy/samples/spread/output.json | 2 +- .../samples/style-inside-head/output.json | 2 +- .../samples/textarea-children/output.json | 2 +- .../samples/textarea-end-tag/output.json | 2 +- .../transition-intro-no-params/output.json | 2 +- .../samples/transition-intro/output.json | 2 +- .../samples/unusual-identifier/output.json | 2 +- .../whitespace-after-script-tag/output.json | 2 +- .../whitespace-after-style-tag/output.json | 2 +- .../whitespace-leading-trailing/output.json | 2 +- .../samples/whitespace-normal/output.json | 2 +- .../samples/comment-before-script/output.json | 2 +- .../samples/css-nth-syntax/output.json | 2 +- .../samples/css-pseudo-classes/output.json | 2 +- .../each-block-object-pattern/output.json | 2 +- .../samples/snippets/output.json | 2 +- .../typescript-in-event-handler/output.json | 2 +- .../_expected/client/main.svelte.js | 2 +- .../samples/each-string-template/_config.js | 3 ++ .../_expected/client/index.svelte.js | 30 +++++++++++++++++++ .../_expected/server/index.svelte.js | 22 ++++++++++++++ .../samples/each-string-template/index.svelte | 3 ++ .../_expected/client/index.svelte.js | 2 +- 91 files changed, 163 insertions(+), 87 deletions(-) create mode 100644 .changeset/eighty-days-cheat.md create mode 100644 packages/svelte/tests/snapshot/samples/each-string-template/_config.js create mode 100644 packages/svelte/tests/snapshot/samples/each-string-template/_expected/client/index.svelte.js create mode 100644 packages/svelte/tests/snapshot/samples/each-string-template/_expected/server/index.svelte.js create mode 100644 packages/svelte/tests/snapshot/samples/each-string-template/index.svelte diff --git a/.changeset/eighty-days-cheat.md b/.changeset/eighty-days-cheat.md new file mode 100644 index 000000000000..1dab9a948f0e --- /dev/null +++ b/.changeset/eighty-days-cheat.md @@ -0,0 +1,5 @@ +--- +'svelte': patch +--- + +fix: improve template literal expression output generation 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 8c3cb748c4fa..c21b1dbf2cf1 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 @@ -1663,6 +1663,14 @@ function serialize_template_literal(values, visit, state) { if (node.type === 'Text') { const last = /** @type {import('estree').TemplateElement} */ (quasis.at(-1)); last.value.raw += sanitize_template_string(node.data); + } else if ( + node.type === 'ExpressionTag' && + node.expression.type === 'Literal' + ) { + const last = /** @type {import('estree').TemplateElement} */ (quasis.at(-1)); + if (node.expression.value != null) { + last.value.raw += sanitize_template_string(node.expression.value + ''); + } } else { if (node.type === 'ExpressionTag' && node.metadata.contains_call_expression) { contains_call_expression = true; diff --git a/packages/svelte/src/internal/client/render.js b/packages/svelte/src/internal/client/render.js index 30da7f35bb6a..2062095235b5 100644 --- a/packages/svelte/src/internal/client/render.js +++ b/packages/svelte/src/internal/client/render.js @@ -2803,7 +2803,7 @@ export function mount(component, options) { ).c = options.context; } // @ts-expect-error the public typings are not what the actual function looks like - accessors = component(anchor, options.props || {}, options.events || {}); + accessors = component(anchor, options.props || {}); if (options.context) { pop(); } diff --git a/packages/svelte/tests/parser-legacy/samples/action-duplicate/output.json b/packages/svelte/tests/parser-legacy/samples/action-duplicate/output.json index 3dad9bb4e523..c310754298c8 100644 --- a/packages/svelte/tests/parser-legacy/samples/action-duplicate/output.json +++ b/packages/svelte/tests/parser-legacy/samples/action-duplicate/output.json @@ -31,4 +31,4 @@ } ] } -} +} \ No newline at end of file diff --git a/packages/svelte/tests/parser-legacy/samples/action-with-call/output.json b/packages/svelte/tests/parser-legacy/samples/action-with-call/output.json index 66ce187c625a..af416ffac254 100644 --- a/packages/svelte/tests/parser-legacy/samples/action-with-call/output.json +++ b/packages/svelte/tests/parser-legacy/samples/action-with-call/output.json @@ -73,4 +73,4 @@ } ] } -} +} \ No newline at end of file diff --git a/packages/svelte/tests/parser-legacy/samples/action-with-identifier/output.json b/packages/svelte/tests/parser-legacy/samples/action-with-identifier/output.json index 39a6f5f64702..229ab78006b3 100644 --- a/packages/svelte/tests/parser-legacy/samples/action-with-identifier/output.json +++ b/packages/svelte/tests/parser-legacy/samples/action-with-identifier/output.json @@ -38,4 +38,4 @@ } ] } -} +} \ No newline at end of file diff --git a/packages/svelte/tests/parser-legacy/samples/action-with-literal/output.json b/packages/svelte/tests/parser-legacy/samples/action-with-literal/output.json index 94c60b701a44..5a6529a9335e 100644 --- a/packages/svelte/tests/parser-legacy/samples/action-with-literal/output.json +++ b/packages/svelte/tests/parser-legacy/samples/action-with-literal/output.json @@ -39,4 +39,4 @@ } ] } -} +} \ No newline at end of file diff --git a/packages/svelte/tests/parser-legacy/samples/action/output.json b/packages/svelte/tests/parser-legacy/samples/action/output.json index d72bf7db1012..55cbff860b63 100644 --- a/packages/svelte/tests/parser-legacy/samples/action/output.json +++ b/packages/svelte/tests/parser-legacy/samples/action/output.json @@ -23,4 +23,4 @@ } ] } -} +} \ No newline at end of file diff --git a/packages/svelte/tests/parser-legacy/samples/animation/output.json b/packages/svelte/tests/parser-legacy/samples/animation/output.json index 6a43c13c2f42..9a30d6200d29 100644 --- a/packages/svelte/tests/parser-legacy/samples/animation/output.json +++ b/packages/svelte/tests/parser-legacy/samples/animation/output.json @@ -76,4 +76,4 @@ } ] } -} +} \ No newline at end of file diff --git a/packages/svelte/tests/parser-legacy/samples/attribute-class-directive/output.json b/packages/svelte/tests/parser-legacy/samples/attribute-class-directive/output.json index 9efe9acf8dda..8c27c8bcb446 100644 --- a/packages/svelte/tests/parser-legacy/samples/attribute-class-directive/output.json +++ b/packages/svelte/tests/parser-legacy/samples/attribute-class-directive/output.json @@ -38,4 +38,4 @@ } ] } -} +} \ No newline at end of file diff --git a/packages/svelte/tests/parser-legacy/samples/attribute-containing-solidus/output.json b/packages/svelte/tests/parser-legacy/samples/attribute-containing-solidus/output.json index 2c63b3a43d13..c67811fab964 100644 --- a/packages/svelte/tests/parser-legacy/samples/attribute-containing-solidus/output.json +++ b/packages/svelte/tests/parser-legacy/samples/attribute-containing-solidus/output.json @@ -38,4 +38,4 @@ } ] } -} +} \ No newline at end of file diff --git a/packages/svelte/tests/parser-legacy/samples/attribute-curly-bracket/output.json b/packages/svelte/tests/parser-legacy/samples/attribute-curly-bracket/output.json index 2453dc9e0a07..a137dd795b3f 100644 --- a/packages/svelte/tests/parser-legacy/samples/attribute-curly-bracket/output.json +++ b/packages/svelte/tests/parser-legacy/samples/attribute-curly-bracket/output.json @@ -52,4 +52,4 @@ } ] } -} +} \ No newline at end of file diff --git a/packages/svelte/tests/parser-legacy/samples/attribute-dynamic-boolean/output.json b/packages/svelte/tests/parser-legacy/samples/attribute-dynamic-boolean/output.json index 5793afe896fd..5462eaf71333 100644 --- a/packages/svelte/tests/parser-legacy/samples/attribute-dynamic-boolean/output.json +++ b/packages/svelte/tests/parser-legacy/samples/attribute-dynamic-boolean/output.json @@ -44,4 +44,4 @@ } ] } -} +} \ No newline at end of file diff --git a/packages/svelte/tests/parser-legacy/samples/attribute-dynamic/output.json b/packages/svelte/tests/parser-legacy/samples/attribute-dynamic/output.json index 9fd98c80ec27..6acc5ebeb133 100644 --- a/packages/svelte/tests/parser-legacy/samples/attribute-dynamic/output.json +++ b/packages/svelte/tests/parser-legacy/samples/attribute-dynamic/output.json @@ -80,4 +80,4 @@ } ] } -} +} \ No newline at end of file diff --git a/packages/svelte/tests/parser-legacy/samples/attribute-empty/output.json b/packages/svelte/tests/parser-legacy/samples/attribute-empty/output.json index d2a3dcd93bf6..478ba2e52560 100644 --- a/packages/svelte/tests/parser-legacy/samples/attribute-empty/output.json +++ b/packages/svelte/tests/parser-legacy/samples/attribute-empty/output.json @@ -105,4 +105,4 @@ } ] } -} +} \ No newline at end of file diff --git a/packages/svelte/tests/parser-legacy/samples/attribute-escaped/output.json b/packages/svelte/tests/parser-legacy/samples/attribute-escaped/output.json index e2eb99f32774..74fa6f2aec1b 100644 --- a/packages/svelte/tests/parser-legacy/samples/attribute-escaped/output.json +++ b/packages/svelte/tests/parser-legacy/samples/attribute-escaped/output.json @@ -30,4 +30,4 @@ } ] } -} +} \ No newline at end of file diff --git a/packages/svelte/tests/parser-legacy/samples/attribute-multiple/output.json b/packages/svelte/tests/parser-legacy/samples/attribute-multiple/output.json index 66b780e53661..80bbdf0e21ed 100644 --- a/packages/svelte/tests/parser-legacy/samples/attribute-multiple/output.json +++ b/packages/svelte/tests/parser-legacy/samples/attribute-multiple/output.json @@ -45,4 +45,4 @@ } ] } -} +} \ No newline at end of file diff --git a/packages/svelte/tests/parser-legacy/samples/attribute-shorthand/output.json b/packages/svelte/tests/parser-legacy/samples/attribute-shorthand/output.json index 5daf29018c3b..5aeb2aa09b09 100644 --- a/packages/svelte/tests/parser-legacy/samples/attribute-shorthand/output.json +++ b/packages/svelte/tests/parser-legacy/samples/attribute-shorthand/output.json @@ -34,4 +34,4 @@ } ] } -} +} \ No newline at end of file diff --git a/packages/svelte/tests/parser-legacy/samples/attribute-static-boolean/output.json b/packages/svelte/tests/parser-legacy/samples/attribute-static-boolean/output.json index 8cb93b75ec08..a059934e4075 100644 --- a/packages/svelte/tests/parser-legacy/samples/attribute-static-boolean/output.json +++ b/packages/svelte/tests/parser-legacy/samples/attribute-static-boolean/output.json @@ -22,4 +22,4 @@ } ] } -} +} \ No newline at end of file diff --git a/packages/svelte/tests/parser-legacy/samples/attribute-static/output.json b/packages/svelte/tests/parser-legacy/samples/attribute-static/output.json index 3e19a4727ea3..94608a0eba0e 100644 --- a/packages/svelte/tests/parser-legacy/samples/attribute-static/output.json +++ b/packages/svelte/tests/parser-legacy/samples/attribute-static/output.json @@ -30,4 +30,4 @@ } ] } -} +} \ No newline at end of file diff --git a/packages/svelte/tests/parser-legacy/samples/attribute-style-directive-modifiers/output.json b/packages/svelte/tests/parser-legacy/samples/attribute-style-directive-modifiers/output.json index b7de71ff5ae6..45bb6f0e2ec8 100644 --- a/packages/svelte/tests/parser-legacy/samples/attribute-style-directive-modifiers/output.json +++ b/packages/svelte/tests/parser-legacy/samples/attribute-style-directive-modifiers/output.json @@ -15,7 +15,9 @@ "end": 36, "type": "StyleDirective", "name": "color", - "modifiers": ["important"], + "modifiers": [ + "important" + ], "value": [ { "type": "MustacheTag", @@ -45,4 +47,4 @@ } ] } -} +} \ No newline at end of file diff --git a/packages/svelte/tests/parser-legacy/samples/attribute-style-directive-shorthand/output.json b/packages/svelte/tests/parser-legacy/samples/attribute-style-directive-shorthand/output.json index d7f53cb00ca2..4ad7aaf7f78b 100644 --- a/packages/svelte/tests/parser-legacy/samples/attribute-style-directive-shorthand/output.json +++ b/packages/svelte/tests/parser-legacy/samples/attribute-style-directive-shorthand/output.json @@ -23,4 +23,4 @@ } ] } -} +} \ No newline at end of file diff --git a/packages/svelte/tests/parser-legacy/samples/attribute-style-directive-string/output.json b/packages/svelte/tests/parser-legacy/samples/attribute-style-directive-string/output.json index 5acf7d797eaa..9693f9778275 100644 --- a/packages/svelte/tests/parser-legacy/samples/attribute-style-directive-string/output.json +++ b/packages/svelte/tests/parser-legacy/samples/attribute-style-directive-string/output.json @@ -359,4 +359,4 @@ } ] } -} +} \ No newline at end of file diff --git a/packages/svelte/tests/parser-legacy/samples/attribute-style-directive/output.json b/packages/svelte/tests/parser-legacy/samples/attribute-style-directive/output.json index 2cce9fef952c..08e2032db321 100644 --- a/packages/svelte/tests/parser-legacy/samples/attribute-style-directive/output.json +++ b/packages/svelte/tests/parser-legacy/samples/attribute-style-directive/output.json @@ -45,4 +45,4 @@ } ] } -} +} \ No newline at end of file diff --git a/packages/svelte/tests/parser-legacy/samples/attribute-style/output.json b/packages/svelte/tests/parser-legacy/samples/attribute-style/output.json index 1d9a528d6d3d..d029f9ef7108 100644 --- a/packages/svelte/tests/parser-legacy/samples/attribute-style/output.json +++ b/packages/svelte/tests/parser-legacy/samples/attribute-style/output.json @@ -38,4 +38,4 @@ } ] } -} +} \ No newline at end of file diff --git a/packages/svelte/tests/parser-legacy/samples/attribute-unquoted/output.json b/packages/svelte/tests/parser-legacy/samples/attribute-unquoted/output.json index 5df4d66ab668..b82bec517d1a 100644 --- a/packages/svelte/tests/parser-legacy/samples/attribute-unquoted/output.json +++ b/packages/svelte/tests/parser-legacy/samples/attribute-unquoted/output.json @@ -30,4 +30,4 @@ } ] } -} +} \ No newline at end of file diff --git a/packages/svelte/tests/parser-legacy/samples/attribute-with-whitespace/output.json b/packages/svelte/tests/parser-legacy/samples/attribute-with-whitespace/output.json index 4d3a29180869..31652f1fd5ee 100644 --- a/packages/svelte/tests/parser-legacy/samples/attribute-with-whitespace/output.json +++ b/packages/svelte/tests/parser-legacy/samples/attribute-with-whitespace/output.json @@ -46,4 +46,4 @@ } ] } -} +} \ No newline at end of file diff --git a/packages/svelte/tests/parser-legacy/samples/await-catch/output.json b/packages/svelte/tests/parser-legacy/samples/await-catch/output.json index 06a73d522cbe..2567f1c3c4d4 100644 --- a/packages/svelte/tests/parser-legacy/samples/await-catch/output.json +++ b/packages/svelte/tests/parser-legacy/samples/await-catch/output.json @@ -171,4 +171,4 @@ } ] } -} +} \ No newline at end of file diff --git a/packages/svelte/tests/parser-legacy/samples/await-then-catch/output.json b/packages/svelte/tests/parser-legacy/samples/await-then-catch/output.json index a2ccb995e018..7aebac3d00e1 100644 --- a/packages/svelte/tests/parser-legacy/samples/await-then-catch/output.json +++ b/packages/svelte/tests/parser-legacy/samples/await-then-catch/output.json @@ -228,4 +228,4 @@ } ] } -} +} \ No newline at end of file diff --git a/packages/svelte/tests/parser-legacy/samples/binding-shorthand/output.json b/packages/svelte/tests/parser-legacy/samples/binding-shorthand/output.json index 672014629791..9d31edabf748 100644 --- a/packages/svelte/tests/parser-legacy/samples/binding-shorthand/output.json +++ b/packages/svelte/tests/parser-legacy/samples/binding-shorthand/output.json @@ -109,4 +109,4 @@ "sourceType": "module" } } -} +} \ No newline at end of file diff --git a/packages/svelte/tests/parser-legacy/samples/binding/output.json b/packages/svelte/tests/parser-legacy/samples/binding/output.json index 4ce069bd37c0..288f9182abd7 100644 --- a/packages/svelte/tests/parser-legacy/samples/binding/output.json +++ b/packages/svelte/tests/parser-legacy/samples/binding/output.json @@ -119,4 +119,4 @@ "sourceType": "module" } } -} +} \ No newline at end of file diff --git a/packages/svelte/tests/parser-legacy/samples/comment-with-ignores/output.json b/packages/svelte/tests/parser-legacy/samples/comment-with-ignores/output.json index b149436a2702..9994b01a248f 100644 --- a/packages/svelte/tests/parser-legacy/samples/comment-with-ignores/output.json +++ b/packages/svelte/tests/parser-legacy/samples/comment-with-ignores/output.json @@ -9,8 +9,11 @@ "start": 0, "end": 30, "data": " svelte-ignore foo bar ", - "ignores": ["foo", "bar"] + "ignores": [ + "foo", + "bar" + ] } ] } -} +} \ No newline at end of file diff --git a/packages/svelte/tests/parser-legacy/samples/comment/output.json b/packages/svelte/tests/parser-legacy/samples/comment/output.json index 6017db404cb9..a721ddd8dc5b 100644 --- a/packages/svelte/tests/parser-legacy/samples/comment/output.json +++ b/packages/svelte/tests/parser-legacy/samples/comment/output.json @@ -13,4 +13,4 @@ } ] } -} +} \ No newline at end of file diff --git a/packages/svelte/tests/parser-legacy/samples/component-dynamic/output.json b/packages/svelte/tests/parser-legacy/samples/component-dynamic/output.json index f624a04c617b..7e7267498fdc 100644 --- a/packages/svelte/tests/parser-legacy/samples/component-dynamic/output.json +++ b/packages/svelte/tests/parser-legacy/samples/component-dynamic/output.json @@ -77,4 +77,4 @@ } ] } -} +} \ No newline at end of file diff --git a/packages/svelte/tests/parser-legacy/samples/convert-entities-in-element/output.json b/packages/svelte/tests/parser-legacy/samples/convert-entities-in-element/output.json index f7a8a3c67794..3025f2c8007e 100644 --- a/packages/svelte/tests/parser-legacy/samples/convert-entities-in-element/output.json +++ b/packages/svelte/tests/parser-legacy/samples/convert-entities-in-element/output.json @@ -22,4 +22,4 @@ } ] } -} +} \ No newline at end of file diff --git a/packages/svelte/tests/parser-legacy/samples/convert-entities/output.json b/packages/svelte/tests/parser-legacy/samples/convert-entities/output.json index c336a3978c30..c43621cc6bb8 100644 --- a/packages/svelte/tests/parser-legacy/samples/convert-entities/output.json +++ b/packages/svelte/tests/parser-legacy/samples/convert-entities/output.json @@ -13,4 +13,4 @@ } ] } -} +} \ No newline at end of file diff --git a/packages/svelte/tests/parser-legacy/samples/css/output.json b/packages/svelte/tests/parser-legacy/samples/css/output.json index d1256eef459d..712c884faf29 100644 --- a/packages/svelte/tests/parser-legacy/samples/css/output.json +++ b/packages/svelte/tests/parser-legacy/samples/css/output.json @@ -81,4 +81,4 @@ "styles": "\n\tdiv {\n\t\tcolor: red;\n\t}\n" } } -} +} \ No newline at end of file diff --git a/packages/svelte/tests/parser-legacy/samples/dynamic-element-string/output.json b/packages/svelte/tests/parser-legacy/samples/dynamic-element-string/output.json index 6dd18f0a4eeb..0c20da2ba07b 100644 --- a/packages/svelte/tests/parser-legacy/samples/dynamic-element-string/output.json +++ b/packages/svelte/tests/parser-legacy/samples/dynamic-element-string/output.json @@ -47,4 +47,4 @@ } ] } -} +} \ No newline at end of file diff --git a/packages/svelte/tests/parser-legacy/samples/dynamic-element-variable/output.json b/packages/svelte/tests/parser-legacy/samples/dynamic-element-variable/output.json index 291cdaa73405..7c75c8bc2a5f 100644 --- a/packages/svelte/tests/parser-legacy/samples/dynamic-element-variable/output.json +++ b/packages/svelte/tests/parser-legacy/samples/dynamic-element-variable/output.json @@ -77,4 +77,4 @@ } ] } -} +} \ No newline at end of file diff --git a/packages/svelte/tests/parser-legacy/samples/dynamic-import/output.json b/packages/svelte/tests/parser-legacy/samples/dynamic-import/output.json index a439b65dd0ec..070bd1724806 100644 --- a/packages/svelte/tests/parser-legacy/samples/dynamic-import/output.json +++ b/packages/svelte/tests/parser-legacy/samples/dynamic-import/output.json @@ -479,4 +479,4 @@ "sourceType": "module" } } -} +} \ No newline at end of file diff --git a/packages/svelte/tests/parser-legacy/samples/each-block-destructured/output.json b/packages/svelte/tests/parser-legacy/samples/each-block-destructured/output.json index d19f5cbbfd8c..68b4b1f535db 100644 --- a/packages/svelte/tests/parser-legacy/samples/each-block-destructured/output.json +++ b/packages/svelte/tests/parser-legacy/samples/each-block-destructured/output.json @@ -265,4 +265,4 @@ "sourceType": "module" } } -} +} \ No newline at end of file diff --git a/packages/svelte/tests/parser-legacy/samples/each-block-else/output.json b/packages/svelte/tests/parser-legacy/samples/each-block-else/output.json index 5af3bff86df3..f474bb1ec05f 100644 --- a/packages/svelte/tests/parser-legacy/samples/each-block-else/output.json +++ b/packages/svelte/tests/parser-legacy/samples/each-block-else/output.json @@ -88,4 +88,4 @@ } ] } -} +} \ No newline at end of file diff --git a/packages/svelte/tests/parser-legacy/samples/each-block-indexed/output.json b/packages/svelte/tests/parser-legacy/samples/each-block-indexed/output.json index 915dd6228b64..c3b2549d9cee 100644 --- a/packages/svelte/tests/parser-legacy/samples/each-block-indexed/output.json +++ b/packages/svelte/tests/parser-legacy/samples/each-block-indexed/output.json @@ -94,4 +94,4 @@ } ] } -} +} \ No newline at end of file diff --git a/packages/svelte/tests/parser-legacy/samples/each-block-keyed/output.json b/packages/svelte/tests/parser-legacy/samples/each-block-keyed/output.json index 9582d4546564..f02798e220ae 100644 --- a/packages/svelte/tests/parser-legacy/samples/each-block-keyed/output.json +++ b/packages/svelte/tests/parser-legacy/samples/each-block-keyed/output.json @@ -114,4 +114,4 @@ } ] } -} +} \ No newline at end of file diff --git a/packages/svelte/tests/parser-legacy/samples/each-block/output.json b/packages/svelte/tests/parser-legacy/samples/each-block/output.json index 1b418dac5a67..5600d6131288 100644 --- a/packages/svelte/tests/parser-legacy/samples/each-block/output.json +++ b/packages/svelte/tests/parser-legacy/samples/each-block/output.json @@ -65,4 +65,4 @@ } ] } -} +} \ No newline at end of file diff --git a/packages/svelte/tests/parser-legacy/samples/element-with-attribute-empty-string/output.json b/packages/svelte/tests/parser-legacy/samples/element-with-attribute-empty-string/output.json index 7773256d44ea..afdcbf4297cf 100644 --- a/packages/svelte/tests/parser-legacy/samples/element-with-attribute-empty-string/output.json +++ b/packages/svelte/tests/parser-legacy/samples/element-with-attribute-empty-string/output.json @@ -61,4 +61,4 @@ } ] } -} +} \ No newline at end of file diff --git a/packages/svelte/tests/parser-legacy/samples/element-with-attribute/output.json b/packages/svelte/tests/parser-legacy/samples/element-with-attribute/output.json index 9477886bb289..b6740a61357c 100644 --- a/packages/svelte/tests/parser-legacy/samples/element-with-attribute/output.json +++ b/packages/svelte/tests/parser-legacy/samples/element-with-attribute/output.json @@ -61,4 +61,4 @@ } ] } -} +} \ No newline at end of file diff --git a/packages/svelte/tests/parser-legacy/samples/element-with-mustache/output.json b/packages/svelte/tests/parser-legacy/samples/element-with-mustache/output.json index ce0dc25e85c6..9bb92244ce68 100644 --- a/packages/svelte/tests/parser-legacy/samples/element-with-mustache/output.json +++ b/packages/svelte/tests/parser-legacy/samples/element-with-mustache/output.json @@ -50,4 +50,4 @@ } ] } -} +} \ No newline at end of file diff --git a/packages/svelte/tests/parser-legacy/samples/element-with-text/output.json b/packages/svelte/tests/parser-legacy/samples/element-with-text/output.json index fde57c470a64..d8bb9e9c1185 100644 --- a/packages/svelte/tests/parser-legacy/samples/element-with-text/output.json +++ b/packages/svelte/tests/parser-legacy/samples/element-with-text/output.json @@ -22,4 +22,4 @@ } ] } -} +} \ No newline at end of file diff --git a/packages/svelte/tests/parser-legacy/samples/elements/output.json b/packages/svelte/tests/parser-legacy/samples/elements/output.json index 6b51383d9339..97513445d695 100644 --- a/packages/svelte/tests/parser-legacy/samples/elements/output.json +++ b/packages/svelte/tests/parser-legacy/samples/elements/output.json @@ -22,4 +22,4 @@ } ] } -} +} \ No newline at end of file diff --git a/packages/svelte/tests/parser-legacy/samples/event-handler/output.json b/packages/svelte/tests/parser-legacy/samples/event-handler/output.json index 45b625667706..396e314da58e 100644 --- a/packages/svelte/tests/parser-legacy/samples/event-handler/output.json +++ b/packages/svelte/tests/parser-legacy/samples/event-handler/output.json @@ -161,4 +161,4 @@ } ] } -} +} \ No newline at end of file diff --git a/packages/svelte/tests/parser-legacy/samples/if-block-else/output.json b/packages/svelte/tests/parser-legacy/samples/if-block-else/output.json index 4ba9370d8870..34efb9fd7b22 100644 --- a/packages/svelte/tests/parser-legacy/samples/if-block-else/output.json +++ b/packages/svelte/tests/parser-legacy/samples/if-block-else/output.json @@ -68,4 +68,4 @@ } ] } -} +} \ No newline at end of file diff --git a/packages/svelte/tests/parser-legacy/samples/if-block-elseif/output.json b/packages/svelte/tests/parser-legacy/samples/if-block-elseif/output.json index 3e6953ab0b3d..2ae1f06cc990 100644 --- a/packages/svelte/tests/parser-legacy/samples/if-block-elseif/output.json +++ b/packages/svelte/tests/parser-legacy/samples/if-block-elseif/output.json @@ -158,4 +158,4 @@ } ] } -} +} \ No newline at end of file diff --git a/packages/svelte/tests/parser-legacy/samples/if-block/output.json b/packages/svelte/tests/parser-legacy/samples/if-block/output.json index 61ecf6e3b2b4..1c60df0d31c8 100644 --- a/packages/svelte/tests/parser-legacy/samples/if-block/output.json +++ b/packages/svelte/tests/parser-legacy/samples/if-block/output.json @@ -36,4 +36,4 @@ } ] } -} +} \ No newline at end of file diff --git a/packages/svelte/tests/parser-legacy/samples/implicitly-closed-li/output.json b/packages/svelte/tests/parser-legacy/samples/implicitly-closed-li/output.json index a56701894e63..be5fba538e42 100644 --- a/packages/svelte/tests/parser-legacy/samples/implicitly-closed-li/output.json +++ b/packages/svelte/tests/parser-legacy/samples/implicitly-closed-li/output.json @@ -70,4 +70,4 @@ } ] } -} +} \ No newline at end of file diff --git a/packages/svelte/tests/parser-legacy/samples/javascript-comments/output.json b/packages/svelte/tests/parser-legacy/samples/javascript-comments/output.json index 951cf05ff864..422ce8153558 100644 --- a/packages/svelte/tests/parser-legacy/samples/javascript-comments/output.json +++ b/packages/svelte/tests/parser-legacy/samples/javascript-comments/output.json @@ -295,4 +295,4 @@ "sourceType": "module" } } -} +} \ No newline at end of file diff --git a/packages/svelte/tests/parser-legacy/samples/nbsp/output.json b/packages/svelte/tests/parser-legacy/samples/nbsp/output.json index 7d2158955a64..a120b08f327a 100644 --- a/packages/svelte/tests/parser-legacy/samples/nbsp/output.json +++ b/packages/svelte/tests/parser-legacy/samples/nbsp/output.json @@ -22,4 +22,4 @@ } ] } -} +} \ No newline at end of file diff --git a/packages/svelte/tests/parser-legacy/samples/no-error-if-before-closing/output.json b/packages/svelte/tests/parser-legacy/samples/no-error-if-before-closing/output.json index 79a26426ded9..769719471e6c 100644 --- a/packages/svelte/tests/parser-legacy/samples/no-error-if-before-closing/output.json +++ b/packages/svelte/tests/parser-legacy/samples/no-error-if-before-closing/output.json @@ -265,4 +265,4 @@ } ] } -} +} \ No newline at end of file diff --git a/packages/svelte/tests/parser-legacy/samples/raw-mustaches/output.json b/packages/svelte/tests/parser-legacy/samples/raw-mustaches/output.json index 7db0bb7ec15a..b8e1da749937 100644 --- a/packages/svelte/tests/parser-legacy/samples/raw-mustaches/output.json +++ b/packages/svelte/tests/parser-legacy/samples/raw-mustaches/output.json @@ -78,4 +78,4 @@ } ] } -} +} \ No newline at end of file diff --git a/packages/svelte/tests/parser-legacy/samples/refs/output.json b/packages/svelte/tests/parser-legacy/samples/refs/output.json index e2bda741fa71..0ecccbf957c4 100644 --- a/packages/svelte/tests/parser-legacy/samples/refs/output.json +++ b/packages/svelte/tests/parser-legacy/samples/refs/output.json @@ -119,4 +119,4 @@ "sourceType": "module" } } -} +} \ No newline at end of file diff --git a/packages/svelte/tests/parser-legacy/samples/script-attribute-with-curly-braces/output.json b/packages/svelte/tests/parser-legacy/samples/script-attribute-with-curly-braces/output.json index e0b50e3b92db..e9298ec50c24 100644 --- a/packages/svelte/tests/parser-legacy/samples/script-attribute-with-curly-braces/output.json +++ b/packages/svelte/tests/parser-legacy/samples/script-attribute-with-curly-braces/output.json @@ -147,4 +147,4 @@ "sourceType": "module" } } -} +} \ No newline at end of file diff --git a/packages/svelte/tests/parser-legacy/samples/script-comment-only/output.json b/packages/svelte/tests/parser-legacy/samples/script-comment-only/output.json index b04a823e8db6..502d5df57600 100644 --- a/packages/svelte/tests/parser-legacy/samples/script-comment-only/output.json +++ b/packages/svelte/tests/parser-legacy/samples/script-comment-only/output.json @@ -52,4 +52,4 @@ ] } } -} +} \ No newline at end of file diff --git a/packages/svelte/tests/parser-legacy/samples/script-context-module-unquoted/output.json b/packages/svelte/tests/parser-legacy/samples/script-context-module-unquoted/output.json index 03a526f04e37..7d7e9d1305d5 100644 --- a/packages/svelte/tests/parser-legacy/samples/script-context-module-unquoted/output.json +++ b/packages/svelte/tests/parser-legacy/samples/script-context-module-unquoted/output.json @@ -175,4 +175,4 @@ "sourceType": "module" } } -} +} \ No newline at end of file diff --git a/packages/svelte/tests/parser-legacy/samples/script/output.json b/packages/svelte/tests/parser-legacy/samples/script/output.json index d3d4abd6b24f..e30414a2a839 100644 --- a/packages/svelte/tests/parser-legacy/samples/script/output.json +++ b/packages/svelte/tests/parser-legacy/samples/script/output.json @@ -147,4 +147,4 @@ "sourceType": "module" } } -} +} \ No newline at end of file diff --git a/packages/svelte/tests/parser-legacy/samples/self-closing-element/output.json b/packages/svelte/tests/parser-legacy/samples/self-closing-element/output.json index f0ba3a5c0d7a..fe59cac4b760 100644 --- a/packages/svelte/tests/parser-legacy/samples/self-closing-element/output.json +++ b/packages/svelte/tests/parser-legacy/samples/self-closing-element/output.json @@ -14,4 +14,4 @@ } ] } -} +} \ No newline at end of file diff --git a/packages/svelte/tests/parser-legacy/samples/self-reference/output.json b/packages/svelte/tests/parser-legacy/samples/self-reference/output.json index 34310fcce46c..44547698fd3c 100644 --- a/packages/svelte/tests/parser-legacy/samples/self-reference/output.json +++ b/packages/svelte/tests/parser-legacy/samples/self-reference/output.json @@ -133,4 +133,4 @@ } ] } -} +} \ No newline at end of file diff --git a/packages/svelte/tests/parser-legacy/samples/slotted-element/output.json b/packages/svelte/tests/parser-legacy/samples/slotted-element/output.json index 90ded681031c..c6717f3074bd 100644 --- a/packages/svelte/tests/parser-legacy/samples/slotted-element/output.json +++ b/packages/svelte/tests/parser-legacy/samples/slotted-element/output.json @@ -39,4 +39,4 @@ } ] } -} +} \ No newline at end of file diff --git a/packages/svelte/tests/parser-legacy/samples/space-between-mustaches/output.json b/packages/svelte/tests/parser-legacy/samples/space-between-mustaches/output.json index bb6de0bea951..7553651864cc 100644 --- a/packages/svelte/tests/parser-legacy/samples/space-between-mustaches/output.json +++ b/packages/svelte/tests/parser-legacy/samples/space-between-mustaches/output.json @@ -106,4 +106,4 @@ } ] } -} +} \ No newline at end of file diff --git a/packages/svelte/tests/parser-legacy/samples/spread/output.json b/packages/svelte/tests/parser-legacy/samples/spread/output.json index 3b79aa967028..b1d80bd5d418 100644 --- a/packages/svelte/tests/parser-legacy/samples/spread/output.json +++ b/packages/svelte/tests/parser-legacy/samples/spread/output.json @@ -36,4 +36,4 @@ } ] } -} +} \ No newline at end of file diff --git a/packages/svelte/tests/parser-legacy/samples/style-inside-head/output.json b/packages/svelte/tests/parser-legacy/samples/style-inside-head/output.json index 733f9e76fff4..25588b950b83 100644 --- a/packages/svelte/tests/parser-legacy/samples/style-inside-head/output.json +++ b/packages/svelte/tests/parser-legacy/samples/style-inside-head/output.json @@ -30,4 +30,4 @@ } ] } -} +} \ No newline at end of file diff --git a/packages/svelte/tests/parser-legacy/samples/textarea-children/output.json b/packages/svelte/tests/parser-legacy/samples/textarea-children/output.json index 60477807b79c..62a295c1352b 100644 --- a/packages/svelte/tests/parser-legacy/samples/textarea-children/output.json +++ b/packages/svelte/tests/parser-legacy/samples/textarea-children/output.json @@ -50,4 +50,4 @@ } ] } -} +} \ No newline at end of file diff --git a/packages/svelte/tests/parser-legacy/samples/textarea-end-tag/output.json b/packages/svelte/tests/parser-legacy/samples/textarea-end-tag/output.json index ed3c85b09a07..145de96560cf 100644 --- a/packages/svelte/tests/parser-legacy/samples/textarea-end-tag/output.json +++ b/packages/svelte/tests/parser-legacy/samples/textarea-end-tag/output.json @@ -50,4 +50,4 @@ } ] } -} +} \ No newline at end of file diff --git a/packages/svelte/tests/parser-legacy/samples/transition-intro-no-params/output.json b/packages/svelte/tests/parser-legacy/samples/transition-intro-no-params/output.json index f30788d7583f..bce5a0f281ef 100644 --- a/packages/svelte/tests/parser-legacy/samples/transition-intro-no-params/output.json +++ b/packages/svelte/tests/parser-legacy/samples/transition-intro-no-params/output.json @@ -33,4 +33,4 @@ } ] } -} +} \ No newline at end of file diff --git a/packages/svelte/tests/parser-legacy/samples/transition-intro/output.json b/packages/svelte/tests/parser-legacy/samples/transition-intro/output.json index ae52f72c5d9c..434112ccf519 100644 --- a/packages/svelte/tests/parser-legacy/samples/transition-intro/output.json +++ b/packages/svelte/tests/parser-legacy/samples/transition-intro/output.json @@ -101,4 +101,4 @@ } ] } -} +} \ No newline at end of file diff --git a/packages/svelte/tests/parser-legacy/samples/unusual-identifier/output.json b/packages/svelte/tests/parser-legacy/samples/unusual-identifier/output.json index 96e6c0a13540..f9234dd81105 100644 --- a/packages/svelte/tests/parser-legacy/samples/unusual-identifier/output.json +++ b/packages/svelte/tests/parser-legacy/samples/unusual-identifier/output.json @@ -65,4 +65,4 @@ } ] } -} +} \ No newline at end of file diff --git a/packages/svelte/tests/parser-legacy/samples/whitespace-after-script-tag/output.json b/packages/svelte/tests/parser-legacy/samples/whitespace-after-script-tag/output.json index 69b23824423d..dee3ba5f2999 100644 --- a/packages/svelte/tests/parser-legacy/samples/whitespace-after-script-tag/output.json +++ b/packages/svelte/tests/parser-legacy/samples/whitespace-after-script-tag/output.json @@ -147,4 +147,4 @@ "sourceType": "module" } } -} +} \ No newline at end of file diff --git a/packages/svelte/tests/parser-legacy/samples/whitespace-after-style-tag/output.json b/packages/svelte/tests/parser-legacy/samples/whitespace-after-style-tag/output.json index 51053485fd8d..be9bd70323b2 100644 --- a/packages/svelte/tests/parser-legacy/samples/whitespace-after-style-tag/output.json +++ b/packages/svelte/tests/parser-legacy/samples/whitespace-after-style-tag/output.json @@ -81,4 +81,4 @@ "styles": "\n\tdiv {\n\t\tcolor: red;\n\t}\n" } } -} +} \ No newline at end of file diff --git a/packages/svelte/tests/parser-legacy/samples/whitespace-leading-trailing/output.json b/packages/svelte/tests/parser-legacy/samples/whitespace-leading-trailing/output.json index baffebfed7f6..67ffc034368e 100644 --- a/packages/svelte/tests/parser-legacy/samples/whitespace-leading-trailing/output.json +++ b/packages/svelte/tests/parser-legacy/samples/whitespace-leading-trailing/output.json @@ -29,4 +29,4 @@ } ] } -} +} \ No newline at end of file diff --git a/packages/svelte/tests/parser-legacy/samples/whitespace-normal/output.json b/packages/svelte/tests/parser-legacy/samples/whitespace-normal/output.json index 4fb88b818d83..27f8e537a157 100644 --- a/packages/svelte/tests/parser-legacy/samples/whitespace-normal/output.json +++ b/packages/svelte/tests/parser-legacy/samples/whitespace-normal/output.json @@ -75,4 +75,4 @@ } ] } -} +} \ No newline at end of file diff --git a/packages/svelte/tests/parser-modern/samples/comment-before-script/output.json b/packages/svelte/tests/parser-modern/samples/comment-before-script/output.json index d52a3752b4af..d1505bfedebe 100644 --- a/packages/svelte/tests/parser-modern/samples/comment-before-script/output.json +++ b/packages/svelte/tests/parser-modern/samples/comment-before-script/output.json @@ -129,4 +129,4 @@ "sourceType": "module" } } -} +} \ No newline at end of file diff --git a/packages/svelte/tests/parser-modern/samples/css-nth-syntax/output.json b/packages/svelte/tests/parser-modern/samples/css-nth-syntax/output.json index 9e13a7cb8646..fb7e2068c458 100644 --- a/packages/svelte/tests/parser-modern/samples/css-nth-syntax/output.json +++ b/packages/svelte/tests/parser-modern/samples/css-nth-syntax/output.json @@ -907,4 +907,4 @@ "transparent": false }, "options": null -} +} \ No newline at end of file diff --git a/packages/svelte/tests/parser-modern/samples/css-pseudo-classes/output.json b/packages/svelte/tests/parser-modern/samples/css-pseudo-classes/output.json index 1431b123a4ee..c1983f3bb80b 100644 --- a/packages/svelte/tests/parser-modern/samples/css-pseudo-classes/output.json +++ b/packages/svelte/tests/parser-modern/samples/css-pseudo-classes/output.json @@ -327,4 +327,4 @@ "transparent": false }, "options": null -} +} \ No newline at end of file diff --git a/packages/svelte/tests/parser-modern/samples/each-block-object-pattern/output.json b/packages/svelte/tests/parser-modern/samples/each-block-object-pattern/output.json index f89be70f77cf..2e7140d9fb39 100644 --- a/packages/svelte/tests/parser-modern/samples/each-block-object-pattern/output.json +++ b/packages/svelte/tests/parser-modern/samples/each-block-object-pattern/output.json @@ -314,4 +314,4 @@ "transparent": false }, "options": null -} +} \ No newline at end of file diff --git a/packages/svelte/tests/parser-modern/samples/snippets/output.json b/packages/svelte/tests/parser-modern/samples/snippets/output.json index 7d7e41425970..48324e41dd38 100644 --- a/packages/svelte/tests/parser-modern/samples/snippets/output.json +++ b/packages/svelte/tests/parser-modern/samples/snippets/output.json @@ -171,4 +171,4 @@ "sourceType": "module" } } -} +} \ No newline at end of file diff --git a/packages/svelte/tests/parser-modern/samples/typescript-in-event-handler/output.json b/packages/svelte/tests/parser-modern/samples/typescript-in-event-handler/output.json index a23219770ba6..32453e0af106 100644 --- a/packages/svelte/tests/parser-modern/samples/typescript-in-event-handler/output.json +++ b/packages/svelte/tests/parser-modern/samples/typescript-in-event-handler/output.json @@ -479,4 +479,4 @@ "sourceType": "module" } } -} +} \ No newline at end of file diff --git a/packages/svelte/tests/snapshot/samples/dynamic-attributes-casing/_expected/client/main.svelte.js b/packages/svelte/tests/snapshot/samples/dynamic-attributes-casing/_expected/client/main.svelte.js index e233a9d51e0a..f0960dc93d5b 100644 --- a/packages/svelte/tests/snapshot/samples/dynamic-attributes-casing/_expected/client/main.svelte.js +++ b/packages/svelte/tests/snapshot/samples/dynamic-attributes-casing/_expected/client/main.svelte.js @@ -45,4 +45,4 @@ export default function Main($$anchor, $$props) { $.close_frag($$anchor, fragment); $.pop(); -} +} \ No newline at end of file diff --git a/packages/svelte/tests/snapshot/samples/each-string-template/_config.js b/packages/svelte/tests/snapshot/samples/each-string-template/_config.js new file mode 100644 index 000000000000..f47bee71df87 --- /dev/null +++ b/packages/svelte/tests/snapshot/samples/each-string-template/_config.js @@ -0,0 +1,3 @@ +import { test } from '../../test'; + +export default test({}); diff --git a/packages/svelte/tests/snapshot/samples/each-string-template/_expected/client/index.svelte.js b/packages/svelte/tests/snapshot/samples/each-string-template/_expected/client/index.svelte.js new file mode 100644 index 000000000000..5680d12e635b --- /dev/null +++ b/packages/svelte/tests/snapshot/samples/each-string-template/_expected/client/index.svelte.js @@ -0,0 +1,30 @@ +// index.svelte (Svelte VERSION) +// Note: compiler output will change before 5.0 is released! +import "svelte/internal/disclose-version"; +import * as $ from "svelte/internal"; + +export default function Each_string_template($$anchor, $$props) { + $.push($$props, false); + + /* Init */ + var fragment = $.comment($$anchor); + var node = $.child_frag(fragment); + + $.each_indexed( + node, + () => ['foo', 'bar', 'baz'], + 1, + ($$anchor, thing, $$index) => { + /* Init */ + var node_1 = $.space($$anchor); + + /* Update */ + $.text_effect(node_1, () => `${$.stringify($.unwrap(thing))}, `); + $.close($$anchor, node_1); + }, + null + ); + + $.close_frag($$anchor, fragment); + $.pop(); +} \ No newline at end of file diff --git a/packages/svelte/tests/snapshot/samples/each-string-template/_expected/server/index.svelte.js b/packages/svelte/tests/snapshot/samples/each-string-template/_expected/server/index.svelte.js new file mode 100644 index 000000000000..a4bbf5a98211 --- /dev/null +++ b/packages/svelte/tests/snapshot/samples/each-string-template/_expected/server/index.svelte.js @@ -0,0 +1,22 @@ +// index.svelte (Svelte VERSION) +// Note: compiler output will change before 5.0 is released! +import * as $ from "svelte/internal/server"; + +export default function Each_string_template($$payload, $$props) { + $.push(false); + + const anchor = $.create_anchor($$payload); + const each_array = $.ensure_array_like(['foo', 'bar', 'baz']); + + $$payload.out += `${anchor}`; + + for (let $$index = 0; $$index < each_array.length; $$index++) { + const thing = each_array[$$index]; + const anchor_1 = $.create_anchor($$payload); + + $$payload.out += `${anchor_1}${$.escape(thing)},${$.escape(' ')}${anchor_1}`; + } + + $$payload.out += `${anchor}`; + $.pop(); +} \ No newline at end of file diff --git a/packages/svelte/tests/snapshot/samples/each-string-template/index.svelte b/packages/svelte/tests/snapshot/samples/each-string-template/index.svelte new file mode 100644 index 000000000000..f2ab129af609 --- /dev/null +++ b/packages/svelte/tests/snapshot/samples/each-string-template/index.svelte @@ -0,0 +1,3 @@ +{#each ['foo', 'bar', 'baz'] as thing} + {thing},{' '} +{/each} diff --git a/packages/svelte/tests/snapshot/samples/svelte-element/_expected/client/index.svelte.js b/packages/svelte/tests/snapshot/samples/svelte-element/_expected/client/index.svelte.js index 937e22410f67..6fcc18c0c430 100644 --- a/packages/svelte/tests/snapshot/samples/svelte-element/_expected/client/index.svelte.js +++ b/packages/svelte/tests/snapshot/samples/svelte-element/_expected/client/index.svelte.js @@ -14,4 +14,4 @@ export default function Svelte_element($$anchor, $$props) { $.element(node, tag); $.close_frag($$anchor, fragment); $.pop(); -} +} \ No newline at end of file From 5762eb8a521bbae3be2e98de388bed4b118eed2a Mon Sep 17 00:00:00 2001 From: Dominic Gannaway Date: Wed, 10 Jan 2024 16:03:04 +0000 Subject: [PATCH 2/2] do not proxy template literal --- .../phases/3-transform/client/utils.js | 1 + .../3-transform/client/visitors/template.js | 5 +-- .../samples/action-duplicate/output.json | 2 +- .../samples/action-with-call/output.json | 2 +- .../action-with-identifier/output.json | 2 +- .../samples/action-with-literal/output.json | 2 +- .../parser-legacy/samples/action/output.json | 2 +- .../samples/animation/output.json | 2 +- .../attribute-class-directive/output.json | 2 +- .../attribute-containing-solidus/output.json | 2 +- .../attribute-curly-bracket/output.json | 2 +- .../attribute-dynamic-boolean/output.json | 2 +- .../samples/attribute-dynamic/output.json | 2 +- .../samples/attribute-empty/output.json | 2 +- .../samples/attribute-escaped/output.json | 2 +- .../samples/attribute-multiple/output.json | 2 +- .../samples/attribute-shorthand/output.json | 2 +- .../attribute-static-boolean/output.json | 2 +- .../samples/attribute-static/output.json | 2 +- .../output.json | 6 +-- .../output.json | 2 +- .../output.json | 2 +- .../attribute-style-directive/output.json | 2 +- .../samples/attribute-style/output.json | 2 +- .../samples/attribute-unquoted/output.json | 2 +- .../attribute-with-whitespace/output.json | 2 +- .../samples/await-catch/output.json | 2 +- .../samples/await-then-catch/output.json | 2 +- .../samples/binding-shorthand/output.json | 2 +- .../parser-legacy/samples/binding/output.json | 2 +- .../samples/comment-with-ignores/output.json | 7 +--- .../parser-legacy/samples/comment/output.json | 2 +- .../samples/component-dynamic/output.json | 2 +- .../convert-entities-in-element/output.json | 2 +- .../samples/convert-entities/output.json | 2 +- .../parser-legacy/samples/css/output.json | 2 +- .../dynamic-element-string/output.json | 2 +- .../dynamic-element-variable/output.json | 2 +- .../samples/dynamic-import/output.json | 2 +- .../each-block-destructured/output.json | 2 +- .../samples/each-block-else/output.json | 2 +- .../samples/each-block-indexed/output.json | 2 +- .../samples/each-block-keyed/output.json | 2 +- .../samples/each-block/output.json | 2 +- .../output.json | 2 +- .../element-with-attribute/output.json | 2 +- .../samples/element-with-mustache/output.json | 2 +- .../samples/element-with-text/output.json | 2 +- .../samples/elements/output.json | 2 +- .../samples/event-handler/output.json | 2 +- .../samples/if-block-else/output.json | 2 +- .../samples/if-block-elseif/output.json | 2 +- .../samples/if-block/output.json | 2 +- .../samples/implicitly-closed-li/output.json | 2 +- .../samples/javascript-comments/output.json | 2 +- .../parser-legacy/samples/nbsp/output.json | 2 +- .../no-error-if-before-closing/output.json | 2 +- .../samples/raw-mustaches/output.json | 2 +- .../parser-legacy/samples/refs/output.json | 2 +- .../output.json | 2 +- .../samples/script-comment-only/output.json | 2 +- .../output.json | 2 +- .../parser-legacy/samples/script/output.json | 2 +- .../samples/self-closing-element/output.json | 2 +- .../samples/self-reference/output.json | 2 +- .../samples/slotted-element/output.json | 2 +- .../space-between-mustaches/output.json | 2 +- .../parser-legacy/samples/spread/output.json | 2 +- .../samples/style-inside-head/output.json | 2 +- .../samples/textarea-children/output.json | 2 +- .../samples/textarea-end-tag/output.json | 2 +- .../transition-intro-no-params/output.json | 2 +- .../samples/transition-intro/output.json | 2 +- .../samples/unusual-identifier/output.json | 2 +- .../whitespace-after-script-tag/output.json | 2 +- .../whitespace-after-style-tag/output.json | 2 +- .../whitespace-leading-trailing/output.json | 2 +- .../samples/whitespace-normal/output.json | 2 +- .../samples/comment-before-script/output.json | 2 +- .../samples/css-nth-syntax/output.json | 2 +- .../samples/css-pseudo-classes/output.json | 2 +- .../each-block-object-pattern/output.json | 2 +- .../samples/snippets/output.json | 2 +- .../typescript-in-event-handler/output.json | 2 +- .../samples/state-proxy-literal/_config.js | 3 ++ .../_expected/client/index.svelte.js | 39 +++++++++++++++++++ .../_expected/server/index.svelte.js | 20 ++++++++++ .../samples/state-proxy-literal/index.svelte | 17 ++++++++ 88 files changed, 165 insertions(+), 93 deletions(-) create mode 100644 packages/svelte/tests/snapshot/samples/state-proxy-literal/_config.js create mode 100644 packages/svelte/tests/snapshot/samples/state-proxy-literal/_expected/client/index.svelte.js create mode 100644 packages/svelte/tests/snapshot/samples/state-proxy-literal/_expected/server/index.svelte.js create mode 100644 packages/svelte/tests/snapshot/samples/state-proxy-literal/index.svelte diff --git a/packages/svelte/src/compiler/phases/3-transform/client/utils.js b/packages/svelte/src/compiler/phases/3-transform/client/utils.js index 2ecec2eeb340..19fef4e5bd3e 100644 --- a/packages/svelte/src/compiler/phases/3-transform/client/utils.js +++ b/packages/svelte/src/compiler/phases/3-transform/client/utils.js @@ -615,6 +615,7 @@ export function should_proxy_or_freeze(node) { if ( !node || node.type === 'Literal' || + node.type === 'TemplateLiteral' || node.type === 'ArrowFunctionExpression' || node.type === 'FunctionExpression' || node.type === 'UnaryExpression' || 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 c21b1dbf2cf1..b6708bc851a0 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 @@ -1663,10 +1663,7 @@ function serialize_template_literal(values, visit, state) { if (node.type === 'Text') { const last = /** @type {import('estree').TemplateElement} */ (quasis.at(-1)); last.value.raw += sanitize_template_string(node.data); - } else if ( - node.type === 'ExpressionTag' && - node.expression.type === 'Literal' - ) { + } else if (node.type === 'ExpressionTag' && node.expression.type === 'Literal') { const last = /** @type {import('estree').TemplateElement} */ (quasis.at(-1)); if (node.expression.value != null) { last.value.raw += sanitize_template_string(node.expression.value + ''); diff --git a/packages/svelte/tests/parser-legacy/samples/action-duplicate/output.json b/packages/svelte/tests/parser-legacy/samples/action-duplicate/output.json index c310754298c8..3dad9bb4e523 100644 --- a/packages/svelte/tests/parser-legacy/samples/action-duplicate/output.json +++ b/packages/svelte/tests/parser-legacy/samples/action-duplicate/output.json @@ -31,4 +31,4 @@ } ] } -} \ No newline at end of file +} diff --git a/packages/svelte/tests/parser-legacy/samples/action-with-call/output.json b/packages/svelte/tests/parser-legacy/samples/action-with-call/output.json index af416ffac254..66ce187c625a 100644 --- a/packages/svelte/tests/parser-legacy/samples/action-with-call/output.json +++ b/packages/svelte/tests/parser-legacy/samples/action-with-call/output.json @@ -73,4 +73,4 @@ } ] } -} \ No newline at end of file +} diff --git a/packages/svelte/tests/parser-legacy/samples/action-with-identifier/output.json b/packages/svelte/tests/parser-legacy/samples/action-with-identifier/output.json index 229ab78006b3..39a6f5f64702 100644 --- a/packages/svelte/tests/parser-legacy/samples/action-with-identifier/output.json +++ b/packages/svelte/tests/parser-legacy/samples/action-with-identifier/output.json @@ -38,4 +38,4 @@ } ] } -} \ No newline at end of file +} diff --git a/packages/svelte/tests/parser-legacy/samples/action-with-literal/output.json b/packages/svelte/tests/parser-legacy/samples/action-with-literal/output.json index 5a6529a9335e..94c60b701a44 100644 --- a/packages/svelte/tests/parser-legacy/samples/action-with-literal/output.json +++ b/packages/svelte/tests/parser-legacy/samples/action-with-literal/output.json @@ -39,4 +39,4 @@ } ] } -} \ No newline at end of file +} diff --git a/packages/svelte/tests/parser-legacy/samples/action/output.json b/packages/svelte/tests/parser-legacy/samples/action/output.json index 55cbff860b63..d72bf7db1012 100644 --- a/packages/svelte/tests/parser-legacy/samples/action/output.json +++ b/packages/svelte/tests/parser-legacy/samples/action/output.json @@ -23,4 +23,4 @@ } ] } -} \ No newline at end of file +} diff --git a/packages/svelte/tests/parser-legacy/samples/animation/output.json b/packages/svelte/tests/parser-legacy/samples/animation/output.json index 9a30d6200d29..6a43c13c2f42 100644 --- a/packages/svelte/tests/parser-legacy/samples/animation/output.json +++ b/packages/svelte/tests/parser-legacy/samples/animation/output.json @@ -76,4 +76,4 @@ } ] } -} \ No newline at end of file +} diff --git a/packages/svelte/tests/parser-legacy/samples/attribute-class-directive/output.json b/packages/svelte/tests/parser-legacy/samples/attribute-class-directive/output.json index 8c27c8bcb446..9efe9acf8dda 100644 --- a/packages/svelte/tests/parser-legacy/samples/attribute-class-directive/output.json +++ b/packages/svelte/tests/parser-legacy/samples/attribute-class-directive/output.json @@ -38,4 +38,4 @@ } ] } -} \ No newline at end of file +} diff --git a/packages/svelte/tests/parser-legacy/samples/attribute-containing-solidus/output.json b/packages/svelte/tests/parser-legacy/samples/attribute-containing-solidus/output.json index c67811fab964..2c63b3a43d13 100644 --- a/packages/svelte/tests/parser-legacy/samples/attribute-containing-solidus/output.json +++ b/packages/svelte/tests/parser-legacy/samples/attribute-containing-solidus/output.json @@ -38,4 +38,4 @@ } ] } -} \ No newline at end of file +} diff --git a/packages/svelte/tests/parser-legacy/samples/attribute-curly-bracket/output.json b/packages/svelte/tests/parser-legacy/samples/attribute-curly-bracket/output.json index a137dd795b3f..2453dc9e0a07 100644 --- a/packages/svelte/tests/parser-legacy/samples/attribute-curly-bracket/output.json +++ b/packages/svelte/tests/parser-legacy/samples/attribute-curly-bracket/output.json @@ -52,4 +52,4 @@ } ] } -} \ No newline at end of file +} diff --git a/packages/svelte/tests/parser-legacy/samples/attribute-dynamic-boolean/output.json b/packages/svelte/tests/parser-legacy/samples/attribute-dynamic-boolean/output.json index 5462eaf71333..5793afe896fd 100644 --- a/packages/svelte/tests/parser-legacy/samples/attribute-dynamic-boolean/output.json +++ b/packages/svelte/tests/parser-legacy/samples/attribute-dynamic-boolean/output.json @@ -44,4 +44,4 @@ } ] } -} \ No newline at end of file +} diff --git a/packages/svelte/tests/parser-legacy/samples/attribute-dynamic/output.json b/packages/svelte/tests/parser-legacy/samples/attribute-dynamic/output.json index 6acc5ebeb133..9fd98c80ec27 100644 --- a/packages/svelte/tests/parser-legacy/samples/attribute-dynamic/output.json +++ b/packages/svelte/tests/parser-legacy/samples/attribute-dynamic/output.json @@ -80,4 +80,4 @@ } ] } -} \ No newline at end of file +} diff --git a/packages/svelte/tests/parser-legacy/samples/attribute-empty/output.json b/packages/svelte/tests/parser-legacy/samples/attribute-empty/output.json index 478ba2e52560..d2a3dcd93bf6 100644 --- a/packages/svelte/tests/parser-legacy/samples/attribute-empty/output.json +++ b/packages/svelte/tests/parser-legacy/samples/attribute-empty/output.json @@ -105,4 +105,4 @@ } ] } -} \ No newline at end of file +} diff --git a/packages/svelte/tests/parser-legacy/samples/attribute-escaped/output.json b/packages/svelte/tests/parser-legacy/samples/attribute-escaped/output.json index 74fa6f2aec1b..e2eb99f32774 100644 --- a/packages/svelte/tests/parser-legacy/samples/attribute-escaped/output.json +++ b/packages/svelte/tests/parser-legacy/samples/attribute-escaped/output.json @@ -30,4 +30,4 @@ } ] } -} \ No newline at end of file +} diff --git a/packages/svelte/tests/parser-legacy/samples/attribute-multiple/output.json b/packages/svelte/tests/parser-legacy/samples/attribute-multiple/output.json index 80bbdf0e21ed..66b780e53661 100644 --- a/packages/svelte/tests/parser-legacy/samples/attribute-multiple/output.json +++ b/packages/svelte/tests/parser-legacy/samples/attribute-multiple/output.json @@ -45,4 +45,4 @@ } ] } -} \ No newline at end of file +} diff --git a/packages/svelte/tests/parser-legacy/samples/attribute-shorthand/output.json b/packages/svelte/tests/parser-legacy/samples/attribute-shorthand/output.json index 5aeb2aa09b09..5daf29018c3b 100644 --- a/packages/svelte/tests/parser-legacy/samples/attribute-shorthand/output.json +++ b/packages/svelte/tests/parser-legacy/samples/attribute-shorthand/output.json @@ -34,4 +34,4 @@ } ] } -} \ No newline at end of file +} diff --git a/packages/svelte/tests/parser-legacy/samples/attribute-static-boolean/output.json b/packages/svelte/tests/parser-legacy/samples/attribute-static-boolean/output.json index a059934e4075..8cb93b75ec08 100644 --- a/packages/svelte/tests/parser-legacy/samples/attribute-static-boolean/output.json +++ b/packages/svelte/tests/parser-legacy/samples/attribute-static-boolean/output.json @@ -22,4 +22,4 @@ } ] } -} \ No newline at end of file +} diff --git a/packages/svelte/tests/parser-legacy/samples/attribute-static/output.json b/packages/svelte/tests/parser-legacy/samples/attribute-static/output.json index 94608a0eba0e..3e19a4727ea3 100644 --- a/packages/svelte/tests/parser-legacy/samples/attribute-static/output.json +++ b/packages/svelte/tests/parser-legacy/samples/attribute-static/output.json @@ -30,4 +30,4 @@ } ] } -} \ No newline at end of file +} diff --git a/packages/svelte/tests/parser-legacy/samples/attribute-style-directive-modifiers/output.json b/packages/svelte/tests/parser-legacy/samples/attribute-style-directive-modifiers/output.json index 45bb6f0e2ec8..b7de71ff5ae6 100644 --- a/packages/svelte/tests/parser-legacy/samples/attribute-style-directive-modifiers/output.json +++ b/packages/svelte/tests/parser-legacy/samples/attribute-style-directive-modifiers/output.json @@ -15,9 +15,7 @@ "end": 36, "type": "StyleDirective", "name": "color", - "modifiers": [ - "important" - ], + "modifiers": ["important"], "value": [ { "type": "MustacheTag", @@ -47,4 +45,4 @@ } ] } -} \ No newline at end of file +} diff --git a/packages/svelte/tests/parser-legacy/samples/attribute-style-directive-shorthand/output.json b/packages/svelte/tests/parser-legacy/samples/attribute-style-directive-shorthand/output.json index 4ad7aaf7f78b..d7f53cb00ca2 100644 --- a/packages/svelte/tests/parser-legacy/samples/attribute-style-directive-shorthand/output.json +++ b/packages/svelte/tests/parser-legacy/samples/attribute-style-directive-shorthand/output.json @@ -23,4 +23,4 @@ } ] } -} \ No newline at end of file +} diff --git a/packages/svelte/tests/parser-legacy/samples/attribute-style-directive-string/output.json b/packages/svelte/tests/parser-legacy/samples/attribute-style-directive-string/output.json index 9693f9778275..5acf7d797eaa 100644 --- a/packages/svelte/tests/parser-legacy/samples/attribute-style-directive-string/output.json +++ b/packages/svelte/tests/parser-legacy/samples/attribute-style-directive-string/output.json @@ -359,4 +359,4 @@ } ] } -} \ No newline at end of file +} diff --git a/packages/svelte/tests/parser-legacy/samples/attribute-style-directive/output.json b/packages/svelte/tests/parser-legacy/samples/attribute-style-directive/output.json index 08e2032db321..2cce9fef952c 100644 --- a/packages/svelte/tests/parser-legacy/samples/attribute-style-directive/output.json +++ b/packages/svelte/tests/parser-legacy/samples/attribute-style-directive/output.json @@ -45,4 +45,4 @@ } ] } -} \ No newline at end of file +} diff --git a/packages/svelte/tests/parser-legacy/samples/attribute-style/output.json b/packages/svelte/tests/parser-legacy/samples/attribute-style/output.json index d029f9ef7108..1d9a528d6d3d 100644 --- a/packages/svelte/tests/parser-legacy/samples/attribute-style/output.json +++ b/packages/svelte/tests/parser-legacy/samples/attribute-style/output.json @@ -38,4 +38,4 @@ } ] } -} \ No newline at end of file +} diff --git a/packages/svelte/tests/parser-legacy/samples/attribute-unquoted/output.json b/packages/svelte/tests/parser-legacy/samples/attribute-unquoted/output.json index b82bec517d1a..5df4d66ab668 100644 --- a/packages/svelte/tests/parser-legacy/samples/attribute-unquoted/output.json +++ b/packages/svelte/tests/parser-legacy/samples/attribute-unquoted/output.json @@ -30,4 +30,4 @@ } ] } -} \ No newline at end of file +} diff --git a/packages/svelte/tests/parser-legacy/samples/attribute-with-whitespace/output.json b/packages/svelte/tests/parser-legacy/samples/attribute-with-whitespace/output.json index 31652f1fd5ee..4d3a29180869 100644 --- a/packages/svelte/tests/parser-legacy/samples/attribute-with-whitespace/output.json +++ b/packages/svelte/tests/parser-legacy/samples/attribute-with-whitespace/output.json @@ -46,4 +46,4 @@ } ] } -} \ No newline at end of file +} diff --git a/packages/svelte/tests/parser-legacy/samples/await-catch/output.json b/packages/svelte/tests/parser-legacy/samples/await-catch/output.json index 2567f1c3c4d4..06a73d522cbe 100644 --- a/packages/svelte/tests/parser-legacy/samples/await-catch/output.json +++ b/packages/svelte/tests/parser-legacy/samples/await-catch/output.json @@ -171,4 +171,4 @@ } ] } -} \ No newline at end of file +} diff --git a/packages/svelte/tests/parser-legacy/samples/await-then-catch/output.json b/packages/svelte/tests/parser-legacy/samples/await-then-catch/output.json index 7aebac3d00e1..a2ccb995e018 100644 --- a/packages/svelte/tests/parser-legacy/samples/await-then-catch/output.json +++ b/packages/svelte/tests/parser-legacy/samples/await-then-catch/output.json @@ -228,4 +228,4 @@ } ] } -} \ No newline at end of file +} diff --git a/packages/svelte/tests/parser-legacy/samples/binding-shorthand/output.json b/packages/svelte/tests/parser-legacy/samples/binding-shorthand/output.json index 9d31edabf748..672014629791 100644 --- a/packages/svelte/tests/parser-legacy/samples/binding-shorthand/output.json +++ b/packages/svelte/tests/parser-legacy/samples/binding-shorthand/output.json @@ -109,4 +109,4 @@ "sourceType": "module" } } -} \ No newline at end of file +} diff --git a/packages/svelte/tests/parser-legacy/samples/binding/output.json b/packages/svelte/tests/parser-legacy/samples/binding/output.json index 288f9182abd7..4ce069bd37c0 100644 --- a/packages/svelte/tests/parser-legacy/samples/binding/output.json +++ b/packages/svelte/tests/parser-legacy/samples/binding/output.json @@ -119,4 +119,4 @@ "sourceType": "module" } } -} \ No newline at end of file +} diff --git a/packages/svelte/tests/parser-legacy/samples/comment-with-ignores/output.json b/packages/svelte/tests/parser-legacy/samples/comment-with-ignores/output.json index 9994b01a248f..b149436a2702 100644 --- a/packages/svelte/tests/parser-legacy/samples/comment-with-ignores/output.json +++ b/packages/svelte/tests/parser-legacy/samples/comment-with-ignores/output.json @@ -9,11 +9,8 @@ "start": 0, "end": 30, "data": " svelte-ignore foo bar ", - "ignores": [ - "foo", - "bar" - ] + "ignores": ["foo", "bar"] } ] } -} \ No newline at end of file +} diff --git a/packages/svelte/tests/parser-legacy/samples/comment/output.json b/packages/svelte/tests/parser-legacy/samples/comment/output.json index a721ddd8dc5b..6017db404cb9 100644 --- a/packages/svelte/tests/parser-legacy/samples/comment/output.json +++ b/packages/svelte/tests/parser-legacy/samples/comment/output.json @@ -13,4 +13,4 @@ } ] } -} \ No newline at end of file +} diff --git a/packages/svelte/tests/parser-legacy/samples/component-dynamic/output.json b/packages/svelte/tests/parser-legacy/samples/component-dynamic/output.json index 7e7267498fdc..f624a04c617b 100644 --- a/packages/svelte/tests/parser-legacy/samples/component-dynamic/output.json +++ b/packages/svelte/tests/parser-legacy/samples/component-dynamic/output.json @@ -77,4 +77,4 @@ } ] } -} \ No newline at end of file +} diff --git a/packages/svelte/tests/parser-legacy/samples/convert-entities-in-element/output.json b/packages/svelte/tests/parser-legacy/samples/convert-entities-in-element/output.json index 3025f2c8007e..f7a8a3c67794 100644 --- a/packages/svelte/tests/parser-legacy/samples/convert-entities-in-element/output.json +++ b/packages/svelte/tests/parser-legacy/samples/convert-entities-in-element/output.json @@ -22,4 +22,4 @@ } ] } -} \ No newline at end of file +} diff --git a/packages/svelte/tests/parser-legacy/samples/convert-entities/output.json b/packages/svelte/tests/parser-legacy/samples/convert-entities/output.json index c43621cc6bb8..c336a3978c30 100644 --- a/packages/svelte/tests/parser-legacy/samples/convert-entities/output.json +++ b/packages/svelte/tests/parser-legacy/samples/convert-entities/output.json @@ -13,4 +13,4 @@ } ] } -} \ No newline at end of file +} diff --git a/packages/svelte/tests/parser-legacy/samples/css/output.json b/packages/svelte/tests/parser-legacy/samples/css/output.json index 712c884faf29..d1256eef459d 100644 --- a/packages/svelte/tests/parser-legacy/samples/css/output.json +++ b/packages/svelte/tests/parser-legacy/samples/css/output.json @@ -81,4 +81,4 @@ "styles": "\n\tdiv {\n\t\tcolor: red;\n\t}\n" } } -} \ No newline at end of file +} diff --git a/packages/svelte/tests/parser-legacy/samples/dynamic-element-string/output.json b/packages/svelte/tests/parser-legacy/samples/dynamic-element-string/output.json index 0c20da2ba07b..6dd18f0a4eeb 100644 --- a/packages/svelte/tests/parser-legacy/samples/dynamic-element-string/output.json +++ b/packages/svelte/tests/parser-legacy/samples/dynamic-element-string/output.json @@ -47,4 +47,4 @@ } ] } -} \ No newline at end of file +} diff --git a/packages/svelte/tests/parser-legacy/samples/dynamic-element-variable/output.json b/packages/svelte/tests/parser-legacy/samples/dynamic-element-variable/output.json index 7c75c8bc2a5f..291cdaa73405 100644 --- a/packages/svelte/tests/parser-legacy/samples/dynamic-element-variable/output.json +++ b/packages/svelte/tests/parser-legacy/samples/dynamic-element-variable/output.json @@ -77,4 +77,4 @@ } ] } -} \ No newline at end of file +} diff --git a/packages/svelte/tests/parser-legacy/samples/dynamic-import/output.json b/packages/svelte/tests/parser-legacy/samples/dynamic-import/output.json index 070bd1724806..a439b65dd0ec 100644 --- a/packages/svelte/tests/parser-legacy/samples/dynamic-import/output.json +++ b/packages/svelte/tests/parser-legacy/samples/dynamic-import/output.json @@ -479,4 +479,4 @@ "sourceType": "module" } } -} \ No newline at end of file +} diff --git a/packages/svelte/tests/parser-legacy/samples/each-block-destructured/output.json b/packages/svelte/tests/parser-legacy/samples/each-block-destructured/output.json index 68b4b1f535db..d19f5cbbfd8c 100644 --- a/packages/svelte/tests/parser-legacy/samples/each-block-destructured/output.json +++ b/packages/svelte/tests/parser-legacy/samples/each-block-destructured/output.json @@ -265,4 +265,4 @@ "sourceType": "module" } } -} \ No newline at end of file +} diff --git a/packages/svelte/tests/parser-legacy/samples/each-block-else/output.json b/packages/svelte/tests/parser-legacy/samples/each-block-else/output.json index f474bb1ec05f..5af3bff86df3 100644 --- a/packages/svelte/tests/parser-legacy/samples/each-block-else/output.json +++ b/packages/svelte/tests/parser-legacy/samples/each-block-else/output.json @@ -88,4 +88,4 @@ } ] } -} \ No newline at end of file +} diff --git a/packages/svelte/tests/parser-legacy/samples/each-block-indexed/output.json b/packages/svelte/tests/parser-legacy/samples/each-block-indexed/output.json index c3b2549d9cee..915dd6228b64 100644 --- a/packages/svelte/tests/parser-legacy/samples/each-block-indexed/output.json +++ b/packages/svelte/tests/parser-legacy/samples/each-block-indexed/output.json @@ -94,4 +94,4 @@ } ] } -} \ No newline at end of file +} diff --git a/packages/svelte/tests/parser-legacy/samples/each-block-keyed/output.json b/packages/svelte/tests/parser-legacy/samples/each-block-keyed/output.json index f02798e220ae..9582d4546564 100644 --- a/packages/svelte/tests/parser-legacy/samples/each-block-keyed/output.json +++ b/packages/svelte/tests/parser-legacy/samples/each-block-keyed/output.json @@ -114,4 +114,4 @@ } ] } -} \ No newline at end of file +} diff --git a/packages/svelte/tests/parser-legacy/samples/each-block/output.json b/packages/svelte/tests/parser-legacy/samples/each-block/output.json index 5600d6131288..1b418dac5a67 100644 --- a/packages/svelte/tests/parser-legacy/samples/each-block/output.json +++ b/packages/svelte/tests/parser-legacy/samples/each-block/output.json @@ -65,4 +65,4 @@ } ] } -} \ No newline at end of file +} diff --git a/packages/svelte/tests/parser-legacy/samples/element-with-attribute-empty-string/output.json b/packages/svelte/tests/parser-legacy/samples/element-with-attribute-empty-string/output.json index afdcbf4297cf..7773256d44ea 100644 --- a/packages/svelte/tests/parser-legacy/samples/element-with-attribute-empty-string/output.json +++ b/packages/svelte/tests/parser-legacy/samples/element-with-attribute-empty-string/output.json @@ -61,4 +61,4 @@ } ] } -} \ No newline at end of file +} diff --git a/packages/svelte/tests/parser-legacy/samples/element-with-attribute/output.json b/packages/svelte/tests/parser-legacy/samples/element-with-attribute/output.json index b6740a61357c..9477886bb289 100644 --- a/packages/svelte/tests/parser-legacy/samples/element-with-attribute/output.json +++ b/packages/svelte/tests/parser-legacy/samples/element-with-attribute/output.json @@ -61,4 +61,4 @@ } ] } -} \ No newline at end of file +} diff --git a/packages/svelte/tests/parser-legacy/samples/element-with-mustache/output.json b/packages/svelte/tests/parser-legacy/samples/element-with-mustache/output.json index 9bb92244ce68..ce0dc25e85c6 100644 --- a/packages/svelte/tests/parser-legacy/samples/element-with-mustache/output.json +++ b/packages/svelte/tests/parser-legacy/samples/element-with-mustache/output.json @@ -50,4 +50,4 @@ } ] } -} \ No newline at end of file +} diff --git a/packages/svelte/tests/parser-legacy/samples/element-with-text/output.json b/packages/svelte/tests/parser-legacy/samples/element-with-text/output.json index d8bb9e9c1185..fde57c470a64 100644 --- a/packages/svelte/tests/parser-legacy/samples/element-with-text/output.json +++ b/packages/svelte/tests/parser-legacy/samples/element-with-text/output.json @@ -22,4 +22,4 @@ } ] } -} \ No newline at end of file +} diff --git a/packages/svelte/tests/parser-legacy/samples/elements/output.json b/packages/svelte/tests/parser-legacy/samples/elements/output.json index 97513445d695..6b51383d9339 100644 --- a/packages/svelte/tests/parser-legacy/samples/elements/output.json +++ b/packages/svelte/tests/parser-legacy/samples/elements/output.json @@ -22,4 +22,4 @@ } ] } -} \ No newline at end of file +} diff --git a/packages/svelte/tests/parser-legacy/samples/event-handler/output.json b/packages/svelte/tests/parser-legacy/samples/event-handler/output.json index 396e314da58e..45b625667706 100644 --- a/packages/svelte/tests/parser-legacy/samples/event-handler/output.json +++ b/packages/svelte/tests/parser-legacy/samples/event-handler/output.json @@ -161,4 +161,4 @@ } ] } -} \ No newline at end of file +} diff --git a/packages/svelte/tests/parser-legacy/samples/if-block-else/output.json b/packages/svelte/tests/parser-legacy/samples/if-block-else/output.json index 34efb9fd7b22..4ba9370d8870 100644 --- a/packages/svelte/tests/parser-legacy/samples/if-block-else/output.json +++ b/packages/svelte/tests/parser-legacy/samples/if-block-else/output.json @@ -68,4 +68,4 @@ } ] } -} \ No newline at end of file +} diff --git a/packages/svelte/tests/parser-legacy/samples/if-block-elseif/output.json b/packages/svelte/tests/parser-legacy/samples/if-block-elseif/output.json index 2ae1f06cc990..3e6953ab0b3d 100644 --- a/packages/svelte/tests/parser-legacy/samples/if-block-elseif/output.json +++ b/packages/svelte/tests/parser-legacy/samples/if-block-elseif/output.json @@ -158,4 +158,4 @@ } ] } -} \ No newline at end of file +} diff --git a/packages/svelte/tests/parser-legacy/samples/if-block/output.json b/packages/svelte/tests/parser-legacy/samples/if-block/output.json index 1c60df0d31c8..61ecf6e3b2b4 100644 --- a/packages/svelte/tests/parser-legacy/samples/if-block/output.json +++ b/packages/svelte/tests/parser-legacy/samples/if-block/output.json @@ -36,4 +36,4 @@ } ] } -} \ No newline at end of file +} diff --git a/packages/svelte/tests/parser-legacy/samples/implicitly-closed-li/output.json b/packages/svelte/tests/parser-legacy/samples/implicitly-closed-li/output.json index be5fba538e42..a56701894e63 100644 --- a/packages/svelte/tests/parser-legacy/samples/implicitly-closed-li/output.json +++ b/packages/svelte/tests/parser-legacy/samples/implicitly-closed-li/output.json @@ -70,4 +70,4 @@ } ] } -} \ No newline at end of file +} diff --git a/packages/svelte/tests/parser-legacy/samples/javascript-comments/output.json b/packages/svelte/tests/parser-legacy/samples/javascript-comments/output.json index 422ce8153558..951cf05ff864 100644 --- a/packages/svelte/tests/parser-legacy/samples/javascript-comments/output.json +++ b/packages/svelte/tests/parser-legacy/samples/javascript-comments/output.json @@ -295,4 +295,4 @@ "sourceType": "module" } } -} \ No newline at end of file +} diff --git a/packages/svelte/tests/parser-legacy/samples/nbsp/output.json b/packages/svelte/tests/parser-legacy/samples/nbsp/output.json index a120b08f327a..7d2158955a64 100644 --- a/packages/svelte/tests/parser-legacy/samples/nbsp/output.json +++ b/packages/svelte/tests/parser-legacy/samples/nbsp/output.json @@ -22,4 +22,4 @@ } ] } -} \ No newline at end of file +} diff --git a/packages/svelte/tests/parser-legacy/samples/no-error-if-before-closing/output.json b/packages/svelte/tests/parser-legacy/samples/no-error-if-before-closing/output.json index 769719471e6c..79a26426ded9 100644 --- a/packages/svelte/tests/parser-legacy/samples/no-error-if-before-closing/output.json +++ b/packages/svelte/tests/parser-legacy/samples/no-error-if-before-closing/output.json @@ -265,4 +265,4 @@ } ] } -} \ No newline at end of file +} diff --git a/packages/svelte/tests/parser-legacy/samples/raw-mustaches/output.json b/packages/svelte/tests/parser-legacy/samples/raw-mustaches/output.json index b8e1da749937..7db0bb7ec15a 100644 --- a/packages/svelte/tests/parser-legacy/samples/raw-mustaches/output.json +++ b/packages/svelte/tests/parser-legacy/samples/raw-mustaches/output.json @@ -78,4 +78,4 @@ } ] } -} \ No newline at end of file +} diff --git a/packages/svelte/tests/parser-legacy/samples/refs/output.json b/packages/svelte/tests/parser-legacy/samples/refs/output.json index 0ecccbf957c4..e2bda741fa71 100644 --- a/packages/svelte/tests/parser-legacy/samples/refs/output.json +++ b/packages/svelte/tests/parser-legacy/samples/refs/output.json @@ -119,4 +119,4 @@ "sourceType": "module" } } -} \ No newline at end of file +} diff --git a/packages/svelte/tests/parser-legacy/samples/script-attribute-with-curly-braces/output.json b/packages/svelte/tests/parser-legacy/samples/script-attribute-with-curly-braces/output.json index e9298ec50c24..e0b50e3b92db 100644 --- a/packages/svelte/tests/parser-legacy/samples/script-attribute-with-curly-braces/output.json +++ b/packages/svelte/tests/parser-legacy/samples/script-attribute-with-curly-braces/output.json @@ -147,4 +147,4 @@ "sourceType": "module" } } -} \ No newline at end of file +} diff --git a/packages/svelte/tests/parser-legacy/samples/script-comment-only/output.json b/packages/svelte/tests/parser-legacy/samples/script-comment-only/output.json index 502d5df57600..b04a823e8db6 100644 --- a/packages/svelte/tests/parser-legacy/samples/script-comment-only/output.json +++ b/packages/svelte/tests/parser-legacy/samples/script-comment-only/output.json @@ -52,4 +52,4 @@ ] } } -} \ No newline at end of file +} diff --git a/packages/svelte/tests/parser-legacy/samples/script-context-module-unquoted/output.json b/packages/svelte/tests/parser-legacy/samples/script-context-module-unquoted/output.json index 7d7e9d1305d5..03a526f04e37 100644 --- a/packages/svelte/tests/parser-legacy/samples/script-context-module-unquoted/output.json +++ b/packages/svelte/tests/parser-legacy/samples/script-context-module-unquoted/output.json @@ -175,4 +175,4 @@ "sourceType": "module" } } -} \ No newline at end of file +} diff --git a/packages/svelte/tests/parser-legacy/samples/script/output.json b/packages/svelte/tests/parser-legacy/samples/script/output.json index e30414a2a839..d3d4abd6b24f 100644 --- a/packages/svelte/tests/parser-legacy/samples/script/output.json +++ b/packages/svelte/tests/parser-legacy/samples/script/output.json @@ -147,4 +147,4 @@ "sourceType": "module" } } -} \ No newline at end of file +} diff --git a/packages/svelte/tests/parser-legacy/samples/self-closing-element/output.json b/packages/svelte/tests/parser-legacy/samples/self-closing-element/output.json index fe59cac4b760..f0ba3a5c0d7a 100644 --- a/packages/svelte/tests/parser-legacy/samples/self-closing-element/output.json +++ b/packages/svelte/tests/parser-legacy/samples/self-closing-element/output.json @@ -14,4 +14,4 @@ } ] } -} \ No newline at end of file +} diff --git a/packages/svelte/tests/parser-legacy/samples/self-reference/output.json b/packages/svelte/tests/parser-legacy/samples/self-reference/output.json index 44547698fd3c..34310fcce46c 100644 --- a/packages/svelte/tests/parser-legacy/samples/self-reference/output.json +++ b/packages/svelte/tests/parser-legacy/samples/self-reference/output.json @@ -133,4 +133,4 @@ } ] } -} \ No newline at end of file +} diff --git a/packages/svelte/tests/parser-legacy/samples/slotted-element/output.json b/packages/svelte/tests/parser-legacy/samples/slotted-element/output.json index c6717f3074bd..90ded681031c 100644 --- a/packages/svelte/tests/parser-legacy/samples/slotted-element/output.json +++ b/packages/svelte/tests/parser-legacy/samples/slotted-element/output.json @@ -39,4 +39,4 @@ } ] } -} \ No newline at end of file +} diff --git a/packages/svelte/tests/parser-legacy/samples/space-between-mustaches/output.json b/packages/svelte/tests/parser-legacy/samples/space-between-mustaches/output.json index 7553651864cc..bb6de0bea951 100644 --- a/packages/svelte/tests/parser-legacy/samples/space-between-mustaches/output.json +++ b/packages/svelte/tests/parser-legacy/samples/space-between-mustaches/output.json @@ -106,4 +106,4 @@ } ] } -} \ No newline at end of file +} diff --git a/packages/svelte/tests/parser-legacy/samples/spread/output.json b/packages/svelte/tests/parser-legacy/samples/spread/output.json index b1d80bd5d418..3b79aa967028 100644 --- a/packages/svelte/tests/parser-legacy/samples/spread/output.json +++ b/packages/svelte/tests/parser-legacy/samples/spread/output.json @@ -36,4 +36,4 @@ } ] } -} \ No newline at end of file +} diff --git a/packages/svelte/tests/parser-legacy/samples/style-inside-head/output.json b/packages/svelte/tests/parser-legacy/samples/style-inside-head/output.json index 25588b950b83..733f9e76fff4 100644 --- a/packages/svelte/tests/parser-legacy/samples/style-inside-head/output.json +++ b/packages/svelte/tests/parser-legacy/samples/style-inside-head/output.json @@ -30,4 +30,4 @@ } ] } -} \ No newline at end of file +} diff --git a/packages/svelte/tests/parser-legacy/samples/textarea-children/output.json b/packages/svelte/tests/parser-legacy/samples/textarea-children/output.json index 62a295c1352b..60477807b79c 100644 --- a/packages/svelte/tests/parser-legacy/samples/textarea-children/output.json +++ b/packages/svelte/tests/parser-legacy/samples/textarea-children/output.json @@ -50,4 +50,4 @@ } ] } -} \ No newline at end of file +} diff --git a/packages/svelte/tests/parser-legacy/samples/textarea-end-tag/output.json b/packages/svelte/tests/parser-legacy/samples/textarea-end-tag/output.json index 145de96560cf..ed3c85b09a07 100644 --- a/packages/svelte/tests/parser-legacy/samples/textarea-end-tag/output.json +++ b/packages/svelte/tests/parser-legacy/samples/textarea-end-tag/output.json @@ -50,4 +50,4 @@ } ] } -} \ No newline at end of file +} diff --git a/packages/svelte/tests/parser-legacy/samples/transition-intro-no-params/output.json b/packages/svelte/tests/parser-legacy/samples/transition-intro-no-params/output.json index bce5a0f281ef..f30788d7583f 100644 --- a/packages/svelte/tests/parser-legacy/samples/transition-intro-no-params/output.json +++ b/packages/svelte/tests/parser-legacy/samples/transition-intro-no-params/output.json @@ -33,4 +33,4 @@ } ] } -} \ No newline at end of file +} diff --git a/packages/svelte/tests/parser-legacy/samples/transition-intro/output.json b/packages/svelte/tests/parser-legacy/samples/transition-intro/output.json index 434112ccf519..ae52f72c5d9c 100644 --- a/packages/svelte/tests/parser-legacy/samples/transition-intro/output.json +++ b/packages/svelte/tests/parser-legacy/samples/transition-intro/output.json @@ -101,4 +101,4 @@ } ] } -} \ No newline at end of file +} diff --git a/packages/svelte/tests/parser-legacy/samples/unusual-identifier/output.json b/packages/svelte/tests/parser-legacy/samples/unusual-identifier/output.json index f9234dd81105..96e6c0a13540 100644 --- a/packages/svelte/tests/parser-legacy/samples/unusual-identifier/output.json +++ b/packages/svelte/tests/parser-legacy/samples/unusual-identifier/output.json @@ -65,4 +65,4 @@ } ] } -} \ No newline at end of file +} diff --git a/packages/svelte/tests/parser-legacy/samples/whitespace-after-script-tag/output.json b/packages/svelte/tests/parser-legacy/samples/whitespace-after-script-tag/output.json index dee3ba5f2999..69b23824423d 100644 --- a/packages/svelte/tests/parser-legacy/samples/whitespace-after-script-tag/output.json +++ b/packages/svelte/tests/parser-legacy/samples/whitespace-after-script-tag/output.json @@ -147,4 +147,4 @@ "sourceType": "module" } } -} \ No newline at end of file +} diff --git a/packages/svelte/tests/parser-legacy/samples/whitespace-after-style-tag/output.json b/packages/svelte/tests/parser-legacy/samples/whitespace-after-style-tag/output.json index be9bd70323b2..51053485fd8d 100644 --- a/packages/svelte/tests/parser-legacy/samples/whitespace-after-style-tag/output.json +++ b/packages/svelte/tests/parser-legacy/samples/whitespace-after-style-tag/output.json @@ -81,4 +81,4 @@ "styles": "\n\tdiv {\n\t\tcolor: red;\n\t}\n" } } -} \ No newline at end of file +} diff --git a/packages/svelte/tests/parser-legacy/samples/whitespace-leading-trailing/output.json b/packages/svelte/tests/parser-legacy/samples/whitespace-leading-trailing/output.json index 67ffc034368e..baffebfed7f6 100644 --- a/packages/svelte/tests/parser-legacy/samples/whitespace-leading-trailing/output.json +++ b/packages/svelte/tests/parser-legacy/samples/whitespace-leading-trailing/output.json @@ -29,4 +29,4 @@ } ] } -} \ No newline at end of file +} diff --git a/packages/svelte/tests/parser-legacy/samples/whitespace-normal/output.json b/packages/svelte/tests/parser-legacy/samples/whitespace-normal/output.json index 27f8e537a157..4fb88b818d83 100644 --- a/packages/svelte/tests/parser-legacy/samples/whitespace-normal/output.json +++ b/packages/svelte/tests/parser-legacy/samples/whitespace-normal/output.json @@ -75,4 +75,4 @@ } ] } -} \ No newline at end of file +} diff --git a/packages/svelte/tests/parser-modern/samples/comment-before-script/output.json b/packages/svelte/tests/parser-modern/samples/comment-before-script/output.json index d1505bfedebe..d52a3752b4af 100644 --- a/packages/svelte/tests/parser-modern/samples/comment-before-script/output.json +++ b/packages/svelte/tests/parser-modern/samples/comment-before-script/output.json @@ -129,4 +129,4 @@ "sourceType": "module" } } -} \ No newline at end of file +} diff --git a/packages/svelte/tests/parser-modern/samples/css-nth-syntax/output.json b/packages/svelte/tests/parser-modern/samples/css-nth-syntax/output.json index fb7e2068c458..9e13a7cb8646 100644 --- a/packages/svelte/tests/parser-modern/samples/css-nth-syntax/output.json +++ b/packages/svelte/tests/parser-modern/samples/css-nth-syntax/output.json @@ -907,4 +907,4 @@ "transparent": false }, "options": null -} \ No newline at end of file +} diff --git a/packages/svelte/tests/parser-modern/samples/css-pseudo-classes/output.json b/packages/svelte/tests/parser-modern/samples/css-pseudo-classes/output.json index c1983f3bb80b..1431b123a4ee 100644 --- a/packages/svelte/tests/parser-modern/samples/css-pseudo-classes/output.json +++ b/packages/svelte/tests/parser-modern/samples/css-pseudo-classes/output.json @@ -327,4 +327,4 @@ "transparent": false }, "options": null -} \ No newline at end of file +} diff --git a/packages/svelte/tests/parser-modern/samples/each-block-object-pattern/output.json b/packages/svelte/tests/parser-modern/samples/each-block-object-pattern/output.json index 2e7140d9fb39..f89be70f77cf 100644 --- a/packages/svelte/tests/parser-modern/samples/each-block-object-pattern/output.json +++ b/packages/svelte/tests/parser-modern/samples/each-block-object-pattern/output.json @@ -314,4 +314,4 @@ "transparent": false }, "options": null -} \ No newline at end of file +} diff --git a/packages/svelte/tests/parser-modern/samples/snippets/output.json b/packages/svelte/tests/parser-modern/samples/snippets/output.json index 48324e41dd38..7d7e41425970 100644 --- a/packages/svelte/tests/parser-modern/samples/snippets/output.json +++ b/packages/svelte/tests/parser-modern/samples/snippets/output.json @@ -171,4 +171,4 @@ "sourceType": "module" } } -} \ No newline at end of file +} diff --git a/packages/svelte/tests/parser-modern/samples/typescript-in-event-handler/output.json b/packages/svelte/tests/parser-modern/samples/typescript-in-event-handler/output.json index 32453e0af106..a23219770ba6 100644 --- a/packages/svelte/tests/parser-modern/samples/typescript-in-event-handler/output.json +++ b/packages/svelte/tests/parser-modern/samples/typescript-in-event-handler/output.json @@ -479,4 +479,4 @@ "sourceType": "module" } } -} \ No newline at end of file +} diff --git a/packages/svelte/tests/snapshot/samples/state-proxy-literal/_config.js b/packages/svelte/tests/snapshot/samples/state-proxy-literal/_config.js new file mode 100644 index 000000000000..f47bee71df87 --- /dev/null +++ b/packages/svelte/tests/snapshot/samples/state-proxy-literal/_config.js @@ -0,0 +1,3 @@ +import { test } from '../../test'; + +export default test({}); diff --git a/packages/svelte/tests/snapshot/samples/state-proxy-literal/_expected/client/index.svelte.js b/packages/svelte/tests/snapshot/samples/state-proxy-literal/_expected/client/index.svelte.js new file mode 100644 index 000000000000..f1a5a0ee429d --- /dev/null +++ b/packages/svelte/tests/snapshot/samples/state-proxy-literal/_expected/client/index.svelte.js @@ -0,0 +1,39 @@ +// index.svelte (Svelte VERSION) +// Note: compiler output will change before 5.0 is released! +import "svelte/internal/disclose-version"; +import * as $ from "svelte/internal"; + +function reset(_, str, tpl) { + $.set(str, ''); + $.set(str, ``); + $.set(tpl, ''); + $.set(tpl, ``); +} + +var frag = $.template(` `, true); + +export default function State_proxy_literal($$anchor, $$props) { + $.push($$props, true); + + let str = $.source(''); + let tpl = $.source(``); + /* Init */ + var fragment = $.open_frag($$anchor, true, frag); + var node = $.child_frag(fragment); + + $.remove_input_attr_defaults(node); + + var input = $.sibling($.sibling(node)); + + $.remove_input_attr_defaults(input); + + var button = $.sibling($.sibling(input)); + + $.bind_value(node, () => $.get(str), ($$value) => $.set(str, $.proxy($$value))); + $.bind_value(input, () => $.get(tpl), ($$value) => $.set(tpl, $.proxy($$value))); + button.__click = [reset, str, tpl]; + $.close_frag($$anchor, fragment); + $.pop(); +} + +$.delegate(["click"]); \ No newline at end of file diff --git a/packages/svelte/tests/snapshot/samples/state-proxy-literal/_expected/server/index.svelte.js b/packages/svelte/tests/snapshot/samples/state-proxy-literal/_expected/server/index.svelte.js new file mode 100644 index 000000000000..c541299e36a7 --- /dev/null +++ b/packages/svelte/tests/snapshot/samples/state-proxy-literal/_expected/server/index.svelte.js @@ -0,0 +1,20 @@ +// index.svelte (Svelte VERSION) +// Note: compiler output will change before 5.0 is released! +import * as $ from "svelte/internal/server"; + +export default function State_proxy_literal($$payload, $$props) { + $.push(true); + + let str = ''; + let tpl = ``; + + function reset() { + str = ''; + str = ``; + tpl = ''; + tpl = ``; + } + + $$payload.out += ` `; + $.pop(); +} \ No newline at end of file diff --git a/packages/svelte/tests/snapshot/samples/state-proxy-literal/index.svelte b/packages/svelte/tests/snapshot/samples/state-proxy-literal/index.svelte new file mode 100644 index 000000000000..155682f9551c --- /dev/null +++ b/packages/svelte/tests/snapshot/samples/state-proxy-literal/index.svelte @@ -0,0 +1,17 @@ + + + + + +