From 7bfc74f19c3d0c4121e1ef155c1f20ae3625df16 Mon Sep 17 00:00:00 2001 From: Rich Harris Date: Sun, 7 Jul 2024 22:43:48 -0400 Subject: [PATCH] reinstate standalone optimisation --- .../compiler/phases/3-transform/server/transform-server.js | 6 ++++-- packages/svelte/src/compiler/phases/3-transform/utils.js | 2 +- .../samples/bind-this/_expected/client/index.svelte.js | 6 +----- .../samples/bind-this/_expected/server/index.svelte.js | 1 - .../_expected/client/index.svelte.js | 6 +----- .../_expected/server/index.svelte.js | 2 -- 6 files changed, 7 insertions(+), 16 deletions(-) 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 5b477d1ec0..26371c16fa 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 @@ -1025,7 +1025,7 @@ function serialize_inline_component(node, expression, context) { context.state.template.push(statement); } - if (custom_css_props.length === 0) { + if (custom_css_props.length === 0 && !context.state.skip_hydration_boundaries) { context.state.template.push(block_close); } } @@ -1219,7 +1219,9 @@ const template_visitors = { ) ); - context.state.template.push(block_close); + if (!context.state.skip_hydration_boundaries) { + context.state.template.push(block_close); + } }, ClassDirective() { throw new Error('Node should have been handled elsewhere'); diff --git a/packages/svelte/src/compiler/phases/3-transform/utils.js b/packages/svelte/src/compiler/phases/3-transform/utils.js index 83cfcf7b41..2d51e2ee39 100644 --- a/packages/svelte/src/compiler/phases/3-transform/utils.js +++ b/packages/svelte/src/compiler/phases/3-transform/utils.js @@ -291,7 +291,7 @@ export function clean_nodes( first && (first?.type === 'Text' || first?.type === 'ExpressionTag'); - return { hoisted, trimmed, is_standalone: false, is_anchored }; + return { hoisted, trimmed, is_standalone, is_anchored }; } /** diff --git a/packages/svelte/tests/snapshot/samples/bind-this/_expected/client/index.svelte.js b/packages/svelte/tests/snapshot/samples/bind-this/_expected/client/index.svelte.js index c766ee0a79..bd24eca962 100644 --- a/packages/svelte/tests/snapshot/samples/bind-this/_expected/client/index.svelte.js +++ b/packages/svelte/tests/snapshot/samples/bind-this/_expected/client/index.svelte.js @@ -2,9 +2,5 @@ import "svelte/internal/disclose-version"; import * as $ from "svelte/internal/client"; export default function Bind_this($$anchor) { - var fragment = $.comment(); - var node = $.first_child(fragment); - - $.bind_this(Foo(node, { $$legacy: true }), ($$value) => foo = $$value, () => foo); - $.append($$anchor, fragment); + $.bind_this(Foo($$anchor, { $$legacy: true }), ($$value) => foo = $$value, () => foo); } \ No newline at end of file diff --git a/packages/svelte/tests/snapshot/samples/bind-this/_expected/server/index.svelte.js b/packages/svelte/tests/snapshot/samples/bind-this/_expected/server/index.svelte.js index b0eb8e9a53..badca8d4a0 100644 --- a/packages/svelte/tests/snapshot/samples/bind-this/_expected/server/index.svelte.js +++ b/packages/svelte/tests/snapshot/samples/bind-this/_expected/server/index.svelte.js @@ -2,5 +2,4 @@ import * as $ from "svelte/internal/server"; export default function Bind_this($$payload) { Foo($$payload, {}); - $$payload.out += ``; } \ No newline at end of file diff --git a/packages/svelte/tests/snapshot/samples/function-prop-no-getter/_expected/client/index.svelte.js b/packages/svelte/tests/snapshot/samples/function-prop-no-getter/_expected/client/index.svelte.js index 00cdcb7a40..0515f1aa33 100644 --- a/packages/svelte/tests/snapshot/samples/function-prop-no-getter/_expected/client/index.svelte.js +++ b/packages/svelte/tests/snapshot/samples/function-prop-no-getter/_expected/client/index.svelte.js @@ -9,10 +9,8 @@ export default function Function_prop_no_getter($$anchor) { } const plusOne = (num) => num + 1; - var fragment = $.comment(); - var node = $.first_child(fragment); - Button(node, { + Button($$anchor, { onmousedown: () => $.set(count, $.get(count) + 1), onmouseup, onmouseenter: () => $.set(count, $.proxy(plusOne($.get(count)))), @@ -24,6 +22,4 @@ export default function Function_prop_no_getter($$anchor) { }, $$slots: { default: true } }); - - $.append($$anchor, fragment); } \ No newline at end of file diff --git a/packages/svelte/tests/snapshot/samples/function-prop-no-getter/_expected/server/index.svelte.js b/packages/svelte/tests/snapshot/samples/function-prop-no-getter/_expected/server/index.svelte.js index 7cca577f21..8f90eaca2e 100644 --- a/packages/svelte/tests/snapshot/samples/function-prop-no-getter/_expected/server/index.svelte.js +++ b/packages/svelte/tests/snapshot/samples/function-prop-no-getter/_expected/server/index.svelte.js @@ -18,6 +18,4 @@ export default function Function_prop_no_getter($$payload) { }, $$slots: { default: true } }); - - $$payload.out += ``; } \ No newline at end of file