From 44d0087b56027a22b3f9f42326f74a241fce9049 Mon Sep 17 00:00:00 2001 From: Rich Harris Date: Tue, 28 Nov 2023 21:05:43 -0500 Subject: [PATCH] only create sources for own properties --- packages/svelte/src/internal/client/magic.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/packages/svelte/src/internal/client/magic.js b/packages/svelte/src/internal/client/magic.js index 167d08768b..76647aeaef 100644 --- a/packages/svelte/src/internal/client/magic.js +++ b/packages/svelte/src/internal/client/magic.js @@ -40,7 +40,9 @@ const handler = { const metadata = target[MAGIC_SYMBOL]; let s = metadata.s.get(prop); - if (s === undefined && effect_active()) { + // if we're reading a property in a reactive context, create a source, + // but only if it's an own property and not a prototype property + if (s === undefined && effect_active() && (!(prop in target) || Object.hasOwn(target, prop))) { s = source(wrap(target[prop], receiver)); metadata.s.set(prop, s); }