From c827b0c772f2259d85f9e3a2ecfffb90f5974868 Mon Sep 17 00:00:00 2001 From: Rich Harris Date: Thu, 16 Nov 2023 17:22:38 -0500 Subject: [PATCH] fix: only treat instance context exports as accessors (#9500) * failing test for #9499 * limit export handling to instance context * changeset --------- Co-authored-by: Rich Harris --- .changeset/sharp-gorillas-impress.md | 5 +++++ packages/svelte/src/compiler/phases/2-analyze/index.js | 2 +- .../samples/module-context-export/_config.js | 9 +++++++++ .../samples/module-context-export/main.svelte | 7 +++++++ 4 files changed, 22 insertions(+), 1 deletion(-) create mode 100644 .changeset/sharp-gorillas-impress.md create mode 100644 packages/svelte/tests/runtime-runes/samples/module-context-export/_config.js create mode 100644 packages/svelte/tests/runtime-runes/samples/module-context-export/main.svelte diff --git a/.changeset/sharp-gorillas-impress.md b/.changeset/sharp-gorillas-impress.md new file mode 100644 index 0000000000..37c74aafa6 --- /dev/null +++ b/.changeset/sharp-gorillas-impress.md @@ -0,0 +1,5 @@ +--- +'svelte': patch +--- + +fix: only treat instance context exports as accessors diff --git a/packages/svelte/src/compiler/phases/2-analyze/index.js b/packages/svelte/src/compiler/phases/2-analyze/index.js index 7a769a2256..1a3bd90020 100644 --- a/packages/svelte/src/compiler/phases/2-analyze/index.js +++ b/packages/svelte/src/compiler/phases/2-analyze/index.js @@ -680,7 +680,7 @@ const runes_scope_tweaker = { }); }, ExportNamedDeclaration(node, { next, state }) { - if (!node.declaration) { + if (!node.declaration || state.ast_type !== 'instance') { return next(); } diff --git a/packages/svelte/tests/runtime-runes/samples/module-context-export/_config.js b/packages/svelte/tests/runtime-runes/samples/module-context-export/_config.js new file mode 100644 index 0000000000..c594a14809 --- /dev/null +++ b/packages/svelte/tests/runtime-runes/samples/module-context-export/_config.js @@ -0,0 +1,9 @@ +import { test } from '../../test'; + +export default test({ + html: `

42

`, + + async test({ assert, target, window, component }) { + assert.equal(component.answer, undefined); + } +}); diff --git a/packages/svelte/tests/runtime-runes/samples/module-context-export/main.svelte b/packages/svelte/tests/runtime-runes/samples/module-context-export/main.svelte new file mode 100644 index 0000000000..e3109ef1f1 --- /dev/null +++ b/packages/svelte/tests/runtime-runes/samples/module-context-export/main.svelte @@ -0,0 +1,7 @@ + + + + +

{answer}