diff --git a/packages/svelte/src/compiler/phases/3-transform/client/visitors/SlotElement.js b/packages/svelte/src/compiler/phases/3-transform/client/visitors/SlotElement.js index c1d235c25b..072eca95f6 100644 --- a/packages/svelte/src/compiler/phases/3-transform/client/visitors/SlotElement.js +++ b/packages/svelte/src/compiler/phases/3-transform/client/visitors/SlotElement.js @@ -61,6 +61,10 @@ export function SlotElement(node, context) { } } + [...async_expressions, ...expressions].forEach((memo, i) => { + memo.id.name = `$${i}`; + }); + // Let bindings first, they can be used on attributes context.state.init.push(...lets); 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 a30451fa95..8f684bfed4 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 @@ -16,8 +16,7 @@ import { build_getter, create_derived } from '../../utils.js'; * @param {Expression} expression */ export function get_expression_id(expressions, expression) { - // TODO tidy this up - const id = b.id(`$${expressions.length}`); + const id = b.id(`#`); // filled in later expressions.push({ id, expression }); return id;