From 53137a133651f79edb6a34aea14ac868c270ca38 Mon Sep 17 00:00:00 2001 From: Rich Harris Date: Fri, 27 Jun 2025 09:49:51 -0400 Subject: [PATCH] dry out --- .../phases/3-transform/client/visitors/shared/element.js | 3 +-- .../phases/3-transform/client/visitors/shared/utils.js | 7 ++++++- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/packages/svelte/src/compiler/phases/3-transform/client/visitors/shared/element.js b/packages/svelte/src/compiler/phases/3-transform/client/visitors/shared/element.js index 40c19c2b64..5b5dc73da1 100644 --- a/packages/svelte/src/compiler/phases/3-transform/client/visitors/shared/element.js +++ b/packages/svelte/src/compiler/phases/3-transform/client/visitors/shared/element.js @@ -89,8 +89,7 @@ export function build_attribute_effect( all.map(({ id }) => id), b.object(values) ), - memoizer.sync.length > 0 && - b.array(memoizer.sync.map(({ expression }) => b.thunk(expression))), + memoizer.sync_values(), memoizer.async_values(), element.metadata.scoped && context.state.analysis.css.hash !== '' && diff --git a/packages/svelte/src/compiler/phases/3-transform/client/visitors/shared/utils.js b/packages/svelte/src/compiler/phases/3-transform/client/visitors/shared/utils.js index d2f4a959c1..ebd864ca4a 100644 --- a/packages/svelte/src/compiler/phases/3-transform/client/visitors/shared/utils.js +++ b/packages/svelte/src/compiler/phases/3-transform/client/visitors/shared/utils.js @@ -53,6 +53,11 @@ export class Memoizer { if (this.async.length === 0) return; return b.array(this.async.map((memo) => b.thunk(memo.expression, true))); } + + sync_values() { + if (this.sync.length === 0) return; + return b.array(this.sync.map((memo) => b.thunk(memo.expression))); + } } /** @@ -169,7 +174,7 @@ export function build_render_statement(state) { ? state.update[0].expression : b.block(state.update) ), - all.length > 0 && b.array(memoizer.sync.map(({ expression }) => b.thunk(expression))), + memoizer.sync_values(), memoizer.async_values() ) );