diff --git a/.changeset/gorgeous-mails-roll.md b/.changeset/gorgeous-mails-roll.md
new file mode 100644
index 0000000000..85bd91d969
--- /dev/null
+++ b/.changeset/gorgeous-mails-roll.md
@@ -0,0 +1,5 @@
+---
+"svelte": patch
+---
+
+fix: ensure window scroll binding inits to window value
diff --git a/packages/svelte/src/internal/client/dom/elements/bindings/window.js b/packages/svelte/src/internal/client/dom/elements/bindings/window.js
index 63123430c9..fa592f3f86 100644
--- a/packages/svelte/src/internal/client/dom/elements/bindings/window.js
+++ b/packages/svelte/src/internal/client/dom/elements/bindings/window.js
@@ -42,6 +42,8 @@ export function bind_window_scroll(type, get_value, update) {
scrollTo(window.scrollX, latest_value);
}
timeout = setTimeout(clear, 100);
+ } else if (latest_value == null) {
+ update(window[is_scrolling_x ? 'scrollX' : 'scrollY']);
}
});
diff --git a/packages/svelte/tests/runtime-legacy/samples/window-bind-scroll-init/_config.js b/packages/svelte/tests/runtime-legacy/samples/window-bind-scroll-init/_config.js
new file mode 100644
index 0000000000..4b461db6a1
--- /dev/null
+++ b/packages/svelte/tests/runtime-legacy/samples/window-bind-scroll-init/_config.js
@@ -0,0 +1,29 @@
+import { test } from '../../test';
+import { vi } from 'vitest';
+
+/** @type {Window['scrollTo']} */
+let original_scrollTo;
+
+export default test({
+ before_test() {
+ vi.useFakeTimers();
+
+ Object.defineProperties(window, {
+ scrollY: {
+ value: 0,
+ configurable: true,
+ writable: true
+ }
+ });
+ },
+
+ after_test() {
+ vi.useRealTimers();
+ },
+
+ async test({ assert, component, window }) {
+ assert.equal(window.pageYOffset, 0);
+
+ assert.equal(component.scrollY, 0);
+ }
+});
diff --git a/packages/svelte/tests/runtime-legacy/samples/window-bind-scroll-init/main.svelte b/packages/svelte/tests/runtime-legacy/samples/window-bind-scroll-init/main.svelte
new file mode 100644
index 0000000000..89840b4801
--- /dev/null
+++ b/packages/svelte/tests/runtime-legacy/samples/window-bind-scroll-init/main.svelte
@@ -0,0 +1,7 @@
+
+
+