diff --git a/packages/svelte/src/compiler/phases/3-transform/client/visitors/IfBlock.js b/packages/svelte/src/compiler/phases/3-transform/client/visitors/IfBlock.js index 4bd0e18932..8e7c8c2799 100644 --- a/packages/svelte/src/compiler/phases/3-transform/client/visitors/IfBlock.js +++ b/packages/svelte/src/compiler/phases/3-transform/client/visitors/IfBlock.js @@ -21,8 +21,8 @@ export function IfBlock(node, context) { if (node.alternate) { const alternate = /** @type {BlockStatement} */ (context.visit(node.alternate)); - alternate_id = context.state.scope.generate('alternate'); - statements.push(b.var(b.id(alternate_id), b.arrow([b.id('$$anchor')], alternate))); + alternate_id = b.id(context.state.scope.generate('alternate')); + statements.push(b.var(alternate_id, b.arrow([b.id('$$anchor')], alternate))); } const { has_await } = node.metadata.expression; @@ -38,15 +38,8 @@ export function IfBlock(node, context) { b.if( test, b.stmt(b.call(b.id('$$render'), b.id(consequent_id))), - alternate_id - ? b.stmt( - b.call( - b.id('$$render'), - b.id(alternate_id), - node.alternate ? b.literal(false) : undefined - ) - ) - : undefined + alternate_id && + b.stmt(b.call('$$render', alternate_id, node.alternate && b.literal(false))) ) ]) ) diff --git a/packages/svelte/src/compiler/utils/builders.js b/packages/svelte/src/compiler/utils/builders.js index 61c0f0d24b..931b11e2ba 100644 --- a/packages/svelte/src/compiler/utils/builders.js +++ b/packages/svelte/src/compiler/utils/builders.js @@ -101,7 +101,7 @@ export function labeled(name, body) { /** * @param {string | ESTree.Expression} callee - * @param {...(ESTree.Expression | ESTree.SpreadElement | false | undefined)} args + * @param {...(ESTree.Expression | ESTree.SpreadElement | false | undefined | null)} args * @returns {ESTree.CallExpression} */ export function call(callee, ...args) {