diff --git a/.changeset/tender-rocks-walk.md b/.changeset/tender-rocks-walk.md new file mode 100644 index 0000000000..db290471ca --- /dev/null +++ b/.changeset/tender-rocks-walk.md @@ -0,0 +1,5 @@ +--- +"svelte": patch +--- + +fix: preserve getters/setters in HMR mode diff --git a/packages/svelte/src/internal/client/dev/hmr.js b/packages/svelte/src/internal/client/dev/hmr.js index 3082e47c68..0f79607707 100644 --- a/packages/svelte/src/internal/client/dev/hmr.js +++ b/packages/svelte/src/internal/client/dev/hmr.js @@ -28,7 +28,11 @@ export function hmr(source) { effect = branch(() => { set_should_intro(false); - Object.assign(instance, component(anchor, props)); + // preserve getters/setters + Object.defineProperties( + instance, + Object.getOwnPropertyDescriptors(component(anchor, props)) + ); set_should_intro(true); }); });