diff --git a/src/compiler/compile/nodes/SlotTemplate.ts b/src/compiler/compile/nodes/SlotTemplate.ts
index cd188596038..90299c8e395 100644
--- a/src/compiler/compile/nodes/SlotTemplate.ts
+++ b/src/compiler/compile/nodes/SlotTemplate.ts
@@ -27,10 +27,7 @@ export default class SlotTemplate extends Node {
this.validate_slot_template_placement();
- const has_let = info.attributes.some((node) => node.type === 'Let');
- if (has_let) {
- scope = scope.child();
- }
+ scope = scope.child();
info.attributes.forEach((node) => {
switch (node.type) {
diff --git a/test/runtime/samples/const-tag-component-without-let/Component.svelte b/test/runtime/samples/const-tag-component-without-let/Component.svelte
new file mode 100644
index 00000000000..e9e76f19b9d
--- /dev/null
+++ b/test/runtime/samples/const-tag-component-without-let/Component.svelte
@@ -0,0 +1,2 @@
+
+
diff --git a/test/runtime/samples/const-tag-component-without-let/_config.js b/test/runtime/samples/const-tag-component-without-let/_config.js
new file mode 100644
index 00000000000..047e034ce98
--- /dev/null
+++ b/test/runtime/samples/const-tag-component-without-let/_config.js
@@ -0,0 +1,15 @@
+export default {
+ html: `
+
static dynamic
+ static dynamic
+ static dynamic
+ `,
+ async test({ component, target, assert }) {
+ component.props = 'xxx';
+ assert.htmlEqual(target.innerHTML, `
+ static xxx
+ static xxx
+ static xxx
+ `);
+ }
+};
diff --git a/test/runtime/samples/const-tag-component-without-let/main.svelte b/test/runtime/samples/const-tag-component-without-let/main.svelte
new file mode 100644
index 00000000000..9bee015c98c
--- /dev/null
+++ b/test/runtime/samples/const-tag-component-without-let/main.svelte
@@ -0,0 +1,24 @@
+
+
+
+
+ {@const foo = "static"}
+ {@const bar = props}
+ {foo} {bar}
+
+
+
+ {@const foo = "static"}
+ {@const bar = props}
+ {foo} {bar}
+
+
+
+
+ {@const foo = "static"}
+ {@const bar = props}
+ {foo} {bar}
+