From f1c0634733f00f2c9107d40db28af1a2bc1e86b7 Mon Sep 17 00:00:00 2001 From: "S. Elliott Johnson" Date: Thu, 11 Sep 2025 12:52:56 -0600 Subject: [PATCH] naming --- packages/svelte/src/compiler/phases/1-parse/state/tag.js | 1 - packages/svelte/src/compiler/phases/2-analyze/index.js | 2 +- .../compiler/phases/2-analyze/visitors/AwaitExpression.js | 6 ++---- .../compiler/phases/3-transform/server/transform-server.js | 2 +- .../phases/3-transform/server/visitors/RegularElement.js | 4 ++-- .../phases/3-transform/server/visitors/SvelteHead.js | 2 +- .../phases/3-transform/server/visitors/shared/component.js | 2 +- packages/svelte/src/compiler/phases/types.d.ts | 2 +- 8 files changed, 9 insertions(+), 12 deletions(-) diff --git a/packages/svelte/src/compiler/phases/1-parse/state/tag.js b/packages/svelte/src/compiler/phases/1-parse/state/tag.js index 6c2162ebcc..ba091ef7ec 100644 --- a/packages/svelte/src/compiler/phases/1-parse/state/tag.js +++ b/packages/svelte/src/compiler/phases/1-parse/state/tag.js @@ -426,7 +426,6 @@ function open(parser) { body: create_fragment(), metadata: { can_hoist: false, - has_await: false, sites: new Set() } }); diff --git a/packages/svelte/src/compiler/phases/2-analyze/index.js b/packages/svelte/src/compiler/phases/2-analyze/index.js index c1d96daad4..c1815c47b3 100644 --- a/packages/svelte/src/compiler/phases/2-analyze/index.js +++ b/packages/svelte/src/compiler/phases/2-analyze/index.js @@ -538,7 +538,7 @@ export function analyze_component(root, source, options) { snippet_renderers: new Map(), snippets: new Set(), async_deriveds: new Set(), - has_blocking_await: false, + suspends_without_fallback: false, hoisted_promises: new Map() }; diff --git a/packages/svelte/src/compiler/phases/2-analyze/visitors/AwaitExpression.js b/packages/svelte/src/compiler/phases/2-analyze/visitors/AwaitExpression.js index e6777ec48c..f896562431 100644 --- a/packages/svelte/src/compiler/phases/2-analyze/visitors/AwaitExpression.js +++ b/packages/svelte/src/compiler/phases/2-analyze/visitors/AwaitExpression.js @@ -48,11 +48,9 @@ export function AwaitExpression(node, context) { if (!context.state.analysis.runes) { e.legacy_await_invalid(node); } - } - // the await will only block if there's no `pending` snippet - context.state.analysis.has_blocking_await ||= - suspend && !context.state.boundary?.metadata.pending; + context.state.analysis.suspends_without_fallback ||= !context.state.boundary?.metadata.pending; + } context.next(); } 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 0214f11a8f..3c83a13fa8 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 @@ -247,7 +247,7 @@ export function server_component(analysis, options) { .../** @type {Statement[]} */ (instance.body), .../** @type {Statement[]} */ (template.body) ]), - analysis.has_blocking_await + analysis.suspends_without_fallback ) ) ) diff --git a/packages/svelte/src/compiler/phases/3-transform/server/visitors/RegularElement.js b/packages/svelte/src/compiler/phases/3-transform/server/visitors/RegularElement.js index ed13fb8a53..111b43dfb5 100644 --- a/packages/svelte/src/compiler/phases/3-transform/server/visitors/RegularElement.js +++ b/packages/svelte/src/compiler/phases/3-transform/server/visitors/RegularElement.js @@ -164,7 +164,7 @@ export function RegularElement(node, context) { b.arrow( [b.id('$$payload')], b.block([...inner_state.init, ...build_template(inner_state.template)]), - context.state.analysis.has_blocking_await + context.state.analysis.suspends_without_fallback ) ) ) @@ -208,7 +208,7 @@ export function RegularElement(node, context) { // TODO this will always produce correct results (because it will produce an async function if the surrounding component is async) // but it will false-positive and create unnecessary async functions (eg. when the component is async but the select element is not) // we could probably optimize by checking if the select element is async. Might be worth it. - context.state.analysis.has_blocking_await + context.state.analysis.suspends_without_fallback ) ); } diff --git a/packages/svelte/src/compiler/phases/3-transform/server/visitors/SvelteHead.js b/packages/svelte/src/compiler/phases/3-transform/server/visitors/SvelteHead.js index 4b67cdc111..5ef6e71989 100644 --- a/packages/svelte/src/compiler/phases/3-transform/server/visitors/SvelteHead.js +++ b/packages/svelte/src/compiler/phases/3-transform/server/visitors/SvelteHead.js @@ -17,7 +17,7 @@ export function SvelteHead(node, context) { b.id('$$payload'), // same thing as elsewhere; this will create more async functions than necessary but should never be _wrong_ // because the component rendering this head block will always be async if the head block is async - b.arrow([b.id('$$payload')], block, context.state.analysis.has_blocking_await) + b.arrow([b.id('$$payload')], block, context.state.analysis.suspends_without_fallback) ) ) ); diff --git a/packages/svelte/src/compiler/phases/3-transform/server/visitors/shared/component.js b/packages/svelte/src/compiler/phases/3-transform/server/visitors/shared/component.js index 043b4b2dfe..da799a4d76 100644 --- a/packages/svelte/src/compiler/phases/3-transform/server/visitors/shared/component.js +++ b/packages/svelte/src/compiler/phases/3-transform/server/visitors/shared/component.js @@ -240,7 +240,7 @@ export function build_inline_component(node, expression, context) { b.arrow( [b.id('$$payload')], b.block(block.body), - context.state.analysis.has_blocking_await + context.state.analysis.suspends_without_fallback ) ) ) diff --git a/packages/svelte/src/compiler/phases/types.d.ts b/packages/svelte/src/compiler/phases/types.d.ts index 5653a5752c..5fd679337c 100644 --- a/packages/svelte/src/compiler/phases/types.d.ts +++ b/packages/svelte/src/compiler/phases/types.d.ts @@ -108,7 +108,7 @@ export interface ComponentAnalysis extends Analysis { */ snippets: Set; /** Whether the component uses `await` in a context that would require an `await` on the server. */ - has_blocking_await: boolean; + suspends_without_fallback: boolean; hoisted_promises: Map; }