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() ) );