diff --git a/.changeset/warm-snakes-remain.md b/.changeset/warm-snakes-remain.md
new file mode 100644
index 000000000000..508e8763e5f3
--- /dev/null
+++ b/.changeset/warm-snakes-remain.md
@@ -0,0 +1,5 @@
+---
+'svelte': patch
+---
+
+chore: adds legacy mode flag reducing bundle size in runes mode only apps
diff --git a/packages/svelte/package.json b/packages/svelte/package.json
index 4ee792827db1..62fa40620a6e 100644
--- a/packages/svelte/package.json
+++ b/packages/svelte/package.json
@@ -53,6 +53,9 @@
"./internal/disclose-version": {
"default": "./src/internal/disclose-version.js"
},
+ "./internal/flags/legacy": {
+ "default": "./src/internal/flags/legacy.js"
+ },
"./internal/server": {
"default": "./src/internal/server/index.js"
},
diff --git a/packages/svelte/scripts/check-treeshakeability.js b/packages/svelte/scripts/check-treeshakeability.js
index 9263649956f5..1b50111b8755 100644
--- a/packages/svelte/scripts/check-treeshakeability.js
+++ b/packages/svelte/scripts/check-treeshakeability.js
@@ -57,6 +57,7 @@ for (const key in pkg.exports) {
if (key === './compiler') continue;
if (key === './internal') continue;
if (key === './internal/disclose-version') continue;
+ if (key === './internal/flags/legacy') continue;
for (const type of ['browser', 'default']) {
if (!pkg.exports[key][type]) continue;
@@ -83,6 +84,7 @@ const bundle = await bundle_code(
// Use all features which contain hydration code to ensure it's treeshakeable
compile(
`
+
-{count} / {doubled} / {quadrupled} / {time_8} / {time_16}
+{count} / {doubled} / {quadrupled} / {time_8} / {time_16}
\ No newline at end of file
diff --git a/packages/svelte/tests/migrate/samples/props-ts/output.svelte b/packages/svelte/tests/migrate/samples/props-ts/output.svelte
index e9deea13846d..b75f4383f52f 100644
--- a/packages/svelte/tests/migrate/samples/props-ts/output.svelte
+++ b/packages/svelte/tests/migrate/samples/props-ts/output.svelte
@@ -39,4 +39,4 @@
{readonly}
{optional}
-
+
\ No newline at end of file
diff --git a/packages/svelte/tests/snapshot/samples/bind-this/_expected/client/index.svelte.js b/packages/svelte/tests/snapshot/samples/bind-this/_expected/client/index.svelte.js
index bd24eca96227..fedcc87696cf 100644
--- a/packages/svelte/tests/snapshot/samples/bind-this/_expected/client/index.svelte.js
+++ b/packages/svelte/tests/snapshot/samples/bind-this/_expected/client/index.svelte.js
@@ -1,4 +1,5 @@
import "svelte/internal/disclose-version";
+import "svelte/internal/flags/legacy";
import * as $ from "svelte/internal/client";
export default function Bind_this($$anchor) {
diff --git a/packages/svelte/tests/snapshot/samples/each-string-template/_expected/client/index.svelte.js b/packages/svelte/tests/snapshot/samples/each-string-template/_expected/client/index.svelte.js
index 81c06f23ec3a..80f2da11a2a1 100644
--- a/packages/svelte/tests/snapshot/samples/each-string-template/_expected/client/index.svelte.js
+++ b/packages/svelte/tests/snapshot/samples/each-string-template/_expected/client/index.svelte.js
@@ -1,4 +1,5 @@
import "svelte/internal/disclose-version";
+import "svelte/internal/flags/legacy";
import * as $ from "svelte/internal/client";
export default function Each_string_template($$anchor) {
diff --git a/packages/svelte/tests/snapshot/samples/hello-world/_expected/client/index.svelte.js b/packages/svelte/tests/snapshot/samples/hello-world/_expected/client/index.svelte.js
index 92354d8f1483..9f6f29166975 100644
--- a/packages/svelte/tests/snapshot/samples/hello-world/_expected/client/index.svelte.js
+++ b/packages/svelte/tests/snapshot/samples/hello-world/_expected/client/index.svelte.js
@@ -1,4 +1,5 @@
import "svelte/internal/disclose-version";
+import "svelte/internal/flags/legacy";
import * as $ from "svelte/internal/client";
var root = $.template(`
hello world
`);
diff --git a/packages/svelte/tests/snapshot/samples/hmr/_expected/client/index.svelte.js b/packages/svelte/tests/snapshot/samples/hmr/_expected/client/index.svelte.js
index 01daada7acd0..86c2880abc8f 100644
--- a/packages/svelte/tests/snapshot/samples/hmr/_expected/client/index.svelte.js
+++ b/packages/svelte/tests/snapshot/samples/hmr/_expected/client/index.svelte.js
@@ -1,4 +1,5 @@
import "svelte/internal/disclose-version";
+import "svelte/internal/flags/legacy";
import * as $ from "svelte/internal/client";
var root = $.template(`hello world
`);
diff --git a/packages/svelte/tests/snapshot/samples/imports-in-modules/_expected/client/index.svelte.js b/packages/svelte/tests/snapshot/samples/imports-in-modules/_expected/client/index.svelte.js
index 464ef519afa0..9c7d2f3f23b0 100644
--- a/packages/svelte/tests/snapshot/samples/imports-in-modules/_expected/client/index.svelte.js
+++ b/packages/svelte/tests/snapshot/samples/imports-in-modules/_expected/client/index.svelte.js
@@ -1,4 +1,5 @@
import "svelte/internal/disclose-version";
+import "svelte/internal/flags/legacy";
import * as $ from "svelte/internal/client";
import { random } from './module.svelte';
diff --git a/packages/svelte/tests/snapshot/samples/purity/_expected/client/index.svelte.js b/packages/svelte/tests/snapshot/samples/purity/_expected/client/index.svelte.js
index 305e9aa0d772..0a627a55ae6c 100644
--- a/packages/svelte/tests/snapshot/samples/purity/_expected/client/index.svelte.js
+++ b/packages/svelte/tests/snapshot/samples/purity/_expected/client/index.svelte.js
@@ -1,4 +1,5 @@
import "svelte/internal/disclose-version";
+import "svelte/internal/flags/legacy";
import * as $ from "svelte/internal/client";
var root = $.template(` `, 1);