From 2c4efbf85c8c3d03dfbe2393607e0b25682ae4e5 Mon Sep 17 00:00:00 2001 From: Simon Holthausen Date: Tue, 27 Feb 2024 18:20:28 +0100 Subject: [PATCH 1/3] feat: allow arbitrary call expressions for render tags closes #9582 --- .changeset/ten-jokes-divide.md | 5 +++ packages/svelte/src/compiler/errors.js | 2 +- .../src/compiler/phases/1-parse/state/tag.js | 10 +++-- .../compiler/phases/2-analyze/validation.js | 9 +++- .../3-transform/client/visitors/template.js | 27 +++++++++--- .../3-transform/server/transform-server.js | 23 ++++++++-- .../svelte/src/compiler/types/template.d.ts | 8 ++-- packages/svelte/src/internal/client/render.js | 6 ++- .../svelte/src/internal/client/validate.js | 2 +- .../samples/snippets/output.json | 44 +++++++++++++------ .../samples/snippet-expressions/_config.js | 23 ++++++++++ .../samples/snippet-expressions/child.svelte | 7 +++ .../samples/snippet-expressions/main.svelte | 17 +++++++ packages/svelte/types/index.d.ts | 5 +-- 14 files changed, 149 insertions(+), 39 deletions(-) create mode 100644 .changeset/ten-jokes-divide.md create mode 100644 packages/svelte/tests/runtime-runes/samples/snippet-expressions/_config.js create mode 100644 packages/svelte/tests/runtime-runes/samples/snippet-expressions/child.svelte create mode 100644 packages/svelte/tests/runtime-runes/samples/snippet-expressions/main.svelte diff --git a/.changeset/ten-jokes-divide.md b/.changeset/ten-jokes-divide.md new file mode 100644 index 000000000000..179357fb29a3 --- /dev/null +++ b/.changeset/ten-jokes-divide.md @@ -0,0 +1,5 @@ +--- +"svelte": patch +--- + +feat: allow arbitrary call expressions and optional chaining for snippets diff --git a/packages/svelte/src/compiler/errors.js b/packages/svelte/src/compiler/errors.js index f2207c9336e2..7c5fcaaf6fef 100644 --- a/packages/svelte/src/compiler/errors.js +++ b/packages/svelte/src/compiler/errors.js @@ -89,7 +89,7 @@ const parse = { 'duplicate-style-element': () => `A component can have a single top-level