From fb1eb23a621160fde7c4bfccbd5022f78331194b Mon Sep 17 00:00:00 2001 From: Rich Harris Date: Wed, 28 May 2025 13:59:57 -0400 Subject: [PATCH] tweak --- .../3-transform/client/visitors/EachBlock.js | 11 +----- .../client/visitors/VariableDeclaration.js | 38 ++++++------------- 2 files changed, 13 insertions(+), 36 deletions(-) diff --git a/packages/svelte/src/compiler/phases/3-transform/client/visitors/EachBlock.js b/packages/svelte/src/compiler/phases/3-transform/client/visitors/EachBlock.js index 65777dbee9..5a944b6db3 100644 --- a/packages/svelte/src/compiler/phases/3-transform/client/visitors/EachBlock.js +++ b/packages/svelte/src/compiler/phases/3-transform/client/visitors/EachBlock.js @@ -240,15 +240,8 @@ export function EachBlock(node, context) { id.name = context.state.scope.generate('$$array'); child_state.transform[id.name] = { read: get_value }; - declarations.push( - b.var( - id, - b.call( - '$.derived', - /** @type {Expression} */ (context.visit(b.thunk(value), child_state)) - ) - ) - ); + const expression = /** @type {Expression} */ (context.visit(b.thunk(value), child_state)); + declarations.push(b.var(id, b.call('$.derived', expression))); } for (const path of paths) { diff --git a/packages/svelte/src/compiler/phases/3-transform/client/visitors/VariableDeclaration.js b/packages/svelte/src/compiler/phases/3-transform/client/visitors/VariableDeclaration.js index f43e1d5999..e717077917 100644 --- a/packages/svelte/src/compiler/phases/3-transform/client/visitors/VariableDeclaration.js +++ b/packages/svelte/src/compiler/phases/3-transform/client/visitors/VariableDeclaration.js @@ -138,14 +138,10 @@ export function VariableDeclaration(node, context) { }; if (declarator.id.type === 'Identifier') { + const expression = /** @type {Expression} */ (context.visit(value)); + declarations.push( - b.declarator( - declarator.id, - create_state_declarator( - declarator.id, - /** @type {Expression} */ (context.visit(value)) - ) - ) + b.declarator(declarator.id, create_state_declarator(declarator.id, expression)) ); } else { const tmp = b.id(context.state.scope.generate('tmp')); @@ -157,10 +153,8 @@ export function VariableDeclaration(node, context) { id.name = context.state.scope.generate('$$array'); context.state.transform[id.name] = { read: get_value }; - return b.declarator( - id, - b.call('$.derived', /** @type {Expression} */ (context.visit(b.thunk(value)))) - ); + const expression = /** @type {Expression} */ (context.visit(b.thunk(value))); + return b.declarator(id, b.call('$.derived', expression)); }), ...paths.map((path) => { const value = /** @type {Expression} */ (context.visit(path.expression)); @@ -205,12 +199,8 @@ export function VariableDeclaration(node, context) { id.name = context.state.scope.generate('$$array'); context.state.transform[id.name] = { read: get_value }; - declarations.push( - b.declarator( - id, - b.call('$.derived', /** @type {Expression} */ (context.visit(b.thunk(value)))) - ) - ); + const expression = /** @type {Expression} */ (context.visit(b.thunk(value))); + declarations.push(b.declarator(id, b.call('$.derived', expression))); } for (const path of paths) { @@ -261,12 +251,8 @@ export function VariableDeclaration(node, context) { id.name = context.state.scope.generate('$$array'); context.state.transform[id.name] = { read: get_value }; - declarations.push( - b.declarator( - id, - b.call('$.derived', /** @type {Expression} */ (context.visit(b.thunk(value)))) - ) - ); + const expression = /** @type {Expression} */ (context.visit(b.thunk(value))); + declarations.push(b.declarator(id, b.call('$.derived', expression))); } for (const path of paths) { @@ -349,10 +335,8 @@ function create_state_declarators(declarator, context, value) { id.name = context.state.scope.generate('$$array'); context.state.transform[id.name] = { read: get_value }; - return b.declarator( - id, - b.call('$.derived', /** @type {Expression} */ (context.visit(b.thunk(value)))) - ); + const expression = /** @type {Expression} */ (context.visit(b.thunk(value))); + return b.declarator(id, b.call('$.derived', expression)); }), ...paths.map((path) => { const value = /** @type {Expression} */ (context.visit(path.expression));