From 309ffcbcbe936090d27650b58994f0173d01a8a1 Mon Sep 17 00:00:00 2001 From: Nguyen Tran Date: Sun, 25 Jun 2023 22:52:28 -0400 Subject: [PATCH] 'invalidate' flattens array of nodes --- .../src/compiler/compile/render_dom/invalidate.js | 4 +++- .../samples/destructure-store-non-store/_config.js | 3 +++ .../samples/destructure-store-non-store/main.svelte | 13 +++++++++++++ 3 files changed, 19 insertions(+), 1 deletion(-) create mode 100644 packages/svelte/test/runtime/samples/destructure-store-non-store/_config.js create mode 100644 packages/svelte/test/runtime/samples/destructure-store-non-store/main.svelte diff --git a/packages/svelte/src/compiler/compile/render_dom/invalidate.js b/packages/svelte/src/compiler/compile/render_dom/invalidate.js index 83423e952b..afcc1a3818 100644 --- a/packages/svelte/src/compiler/compile/render_dom/invalidate.js +++ b/packages/svelte/src/compiler/compile/render_dom/invalidate.js @@ -7,7 +7,7 @@ import { x } from 'code-red'; * @param {import('estree').Node} node * @param {Set} names * @param {boolean} main_execution_context - * @returns {any} + * @returns {import('estree').Node} */ export function invalidate(renderer, scope, node, names, main_execution_context = false) { const { component } = renderer; @@ -83,6 +83,8 @@ export function invalidate(renderer, scope, node, names, main_execution_context if (head.subscribable && head.reassigned) { const subscribe = `$$subscribe_${head.name}`; invalidate = x`${subscribe}(${invalidate})`; + } else if (Array.isArray(invalidate)) { + invalidate = invalidate.reduce((lhs, rhs) => x`${lhs}, ${rhs}`); } return invalidate; } diff --git a/packages/svelte/test/runtime/samples/destructure-store-non-store/_config.js b/packages/svelte/test/runtime/samples/destructure-store-non-store/_config.js new file mode 100644 index 0000000000..ee2eda63f6 --- /dev/null +++ b/packages/svelte/test/runtime/samples/destructure-store-non-store/_config.js @@ -0,0 +1,3 @@ +export default { + html: 'true' +}; diff --git a/packages/svelte/test/runtime/samples/destructure-store-non-store/main.svelte b/packages/svelte/test/runtime/samples/destructure-store-non-store/main.svelte new file mode 100644 index 0000000000..3981d9d044 --- /dev/null +++ b/packages/svelte/test/runtime/samples/destructure-store-non-store/main.svelte @@ -0,0 +1,13 @@ + + +{#if $store} + {nonStore} +{/if}