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 06809bfa81..e8d7d3d190 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 @@ -1859,7 +1859,6 @@ export const template_visitors = { ); } else { context.state.init.push( - b.stmt(b.call('$.next')), b.stmt( (node.expression.type === 'CallExpression' ? b.call : b.maybe_call)( snippet_function, diff --git a/packages/svelte/src/compiler/phases/3-transform/server/transform-server.js b/packages/svelte/src/compiler/phases/3-transform/server/transform-server.js index f3a9a2f1e9..e90019ade3 100644 --- a/packages/svelte/src/compiler/phases/3-transform/server/transform-server.js +++ b/packages/svelte/src/compiler/phases/3-transform/server/transform-server.js @@ -1202,8 +1202,6 @@ const template_visitors = { return /** @type {import('estree').Expression} */ (context.visit(arg)); }); - context.state.template.push(block_open); - context.state.template.push( b.stmt( (node.expression.type === 'CallExpression' ? b.call : b.maybe_call)( diff --git a/packages/svelte/src/compiler/phases/3-transform/utils.js b/packages/svelte/src/compiler/phases/3-transform/utils.js index b234a8af1a..31d117080b 100644 --- a/packages/svelte/src/compiler/phases/3-transform/utils.js +++ b/packages/svelte/src/compiler/phases/3-transform/utils.js @@ -287,7 +287,7 @@ export function clean_nodes( // if a component or snippet starts with text, we need to add an anchor comment // so that its text node doesn't get fused with its surroundings const is_text_first = - parent.type === 'Fragment' && + (parent.type === 'Fragment' || parent.type === 'SnippetBlock') && first && (first?.type === 'Text' || first?.type === 'ExpressionTag'); diff --git a/packages/svelte/src/internal/client/dom/blocks/snippet.js b/packages/svelte/src/internal/client/dom/blocks/snippet.js index ab4c72b902..d5e7e96926 100644 --- a/packages/svelte/src/internal/client/dom/blocks/snippet.js +++ b/packages/svelte/src/internal/client/dom/blocks/snippet.js @@ -6,7 +6,7 @@ import { dev_current_component_function, set_dev_current_component_function } from '../../runtime.js'; -import { hydrate_next, hydrate_node, hydrating } from '../hydration.js'; +import { hydrate_node, hydrating } from '../hydration.js'; /** * @template {(node: TemplateNode, ...args: any[]) => void} SnippetFn @@ -16,10 +16,6 @@ import { hydrate_next, hydrate_node, hydrating } from '../hydration.js'; * @returns {void} */ export function snippet(anchor, get_snippet, ...args) { - if (hydrating) { - hydrate_next(); - } - /** @type {SnippetFn | null | undefined} */ var snippet; diff --git a/packages/svelte/tests/snapshot/samples/bind-component-snippet/_expected/client/index.svelte.js b/packages/svelte/tests/snapshot/samples/bind-component-snippet/_expected/client/index.svelte.js index ba4352d57b..38f60bacdf 100644 --- a/packages/svelte/tests/snapshot/samples/bind-component-snippet/_expected/client/index.svelte.js +++ b/packages/svelte/tests/snapshot/samples/bind-component-snippet/_expected/client/index.svelte.js @@ -7,6 +7,8 @@ var root = $.template(` `, 1); export default function Bind_component_snippet($$anchor) { const snippet = ($$anchor) => { + $.next(); + var fragment = root_1(); $.append($$anchor, fragment); diff --git a/packages/svelte/tests/snapshot/samples/bind-component-snippet/_expected/server/index.svelte.js b/packages/svelte/tests/snapshot/samples/bind-component-snippet/_expected/server/index.svelte.js index e654523141..81e076b30f 100644 --- a/packages/svelte/tests/snapshot/samples/bind-component-snippet/_expected/server/index.svelte.js +++ b/packages/svelte/tests/snapshot/samples/bind-component-snippet/_expected/server/index.svelte.js @@ -6,7 +6,7 @@ export default function Bind_component_snippet($$payload) { const _snippet = snippet; function snippet($$payload) { - $$payload.out += `Something`; + $$payload.out += `Something`; } let $$settled = true;