From 669d2d7a1ea8d5eebc61782497e12a0d8a77fd49 Mon Sep 17 00:00:00 2001 From: Simon H <5968653+dummdidumm@users.noreply.github.com> Date: Fri, 19 Apr 2024 14:03:09 +0200 Subject: [PATCH] fix: preserve getters/setters in HMR mode (#11231) fixes #11228 --- .changeset/tender-rocks-walk.md | 5 +++++ packages/svelte/src/internal/client/dev/hmr.js | 6 +++++- 2 files changed, 10 insertions(+), 1 deletion(-) create mode 100644 .changeset/tender-rocks-walk.md 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); }); });