From e07672b9f9041be1487c3083d8d4c49f7a29fe75 Mon Sep 17 00:00:00 2001 From: ComputerGuy <63362464+Ocean-OS@users.noreply.github.com> Date: Fri, 29 Aug 2025 12:56:59 -0700 Subject: [PATCH 1/4] fix --- .../src/compiler/phases/3-transform/client/visitors/Program.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/svelte/src/compiler/phases/3-transform/client/visitors/Program.js b/packages/svelte/src/compiler/phases/3-transform/client/visitors/Program.js index 3146c6ef03..dab48188b6 100644 --- a/packages/svelte/src/compiler/phases/3-transform/client/visitors/Program.js +++ b/packages/svelte/src/compiler/phases/3-transform/client/visitors/Program.js @@ -153,7 +153,7 @@ export function Program(node, context) { ); } else { const pattern = b.array_pattern(chunk.declarators.map(({ id }) => id)); - const init = b.call('$.all', b.array(chunk.declarators.map(({ init }) => init))); + const init = b.call('$.all', ...chunk.declarators.map(({ init }) => init)); body.push(b.declaration(chunk.kind, [b.declarator(pattern, b.await(init))])); } } From a5a5b8da891d0e787751e47fd2b01b61c5f79c51 Mon Sep 17 00:00:00 2001 From: ComputerGuy <63362464+Ocean-OS@users.noreply.github.com> Date: Fri, 29 Aug 2025 13:08:18 -0700 Subject: [PATCH 2/4] tweak --- .../compiler/phases/3-transform/client/utils.js | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) 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 45bd55f1f4..6a51d3a736 100644 --- a/packages/svelte/src/compiler/phases/3-transform/client/utils.js +++ b/packages/svelte/src/compiler/phases/3-transform/client/utils.js @@ -37,6 +37,7 @@ export function is_state_source(binding, analysis) { */ export function can_be_parallelized(expression, scope, analysis) { let has_closures = false; + let should_stop = false; /** @type {Set} */ const references = new Set(); walk(expression, null, { @@ -52,9 +53,21 @@ export function can_be_parallelized(expression, scope, analysis) { if (is_reference(node, /** @type {Node} */ (path.at(-1)))) { references.add(node.name); } + }, + MemberExpression(node, { stop }) { + should_stop = true; + stop(); + }, + CallExpression(node, { stop }) { + should_stop = true; + stop(); + }, + NewExpression(node, { stop }) { + should_stop = true; + stop(); } }); - if (has_closures) { + if (has_closures || should_stop) { return false; } for (const reference of references) { From 76b47d7270d01aa37077f642be00b7f3021a1b09 Mon Sep 17 00:00:00 2001 From: ComputerGuy <63362464+Ocean-OS@users.noreply.github.com> Date: Fri, 29 Aug 2025 13:30:31 -0700 Subject: [PATCH 3/4] more --- .../svelte/src/compiler/phases/3-transform/client/utils.js | 4 ++++ 1 file changed, 4 insertions(+) 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 6a51d3a736..14352d855b 100644 --- a/packages/svelte/src/compiler/phases/3-transform/client/utils.js +++ b/packages/svelte/src/compiler/phases/3-transform/client/utils.js @@ -65,6 +65,10 @@ export function can_be_parallelized(expression, scope, analysis) { NewExpression(node, { stop }) { should_stop = true; stop(); + }, + StaticBlock(node, { stop }) { + has_closures = true; + stop(); } }); if (has_closures || should_stop) { From f57ec19efbc2637769cf6079525d77542d02035e Mon Sep 17 00:00:00 2001 From: ComputerGuy <63362464+Ocean-OS@users.noreply.github.com> Date: Fri, 29 Aug 2025 13:32:09 -0700 Subject: [PATCH 4/4] doh --- packages/svelte/src/compiler/phases/3-transform/client/utils.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 14352d855b..ff1fdefbb1 100644 --- a/packages/svelte/src/compiler/phases/3-transform/client/utils.js +++ b/packages/svelte/src/compiler/phases/3-transform/client/utils.js @@ -40,7 +40,7 @@ export function can_be_parallelized(expression, scope, analysis) { let should_stop = false; /** @type {Set} */ const references = new Set(); - walk(expression, null, { + walk(/** @type {Node} */ (expression), null, { ArrowFunctionExpression(_, { stop }) { has_closures = true; stop();