From df851cf9ee82706e25063e69447c4871591ba9fa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Julien=20Valverd=C3=A9?= Date: Wed, 23 Apr 2025 07:06:32 +0200 Subject: [PATCH] SearchPaths work --- packages/reffuse/src/types/SearchPaths.ts | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/packages/reffuse/src/types/SearchPaths.ts b/packages/reffuse/src/types/SearchPaths.ts index 47d7416..1411449 100644 --- a/packages/reffuse/src/types/SearchPaths.ts +++ b/packages/reffuse/src/types/SearchPaths.ts @@ -55,16 +55,20 @@ export const immutableSet = >( if (Option.isNone(child)) return child - if (Array.isArray(parent) && typeof key.value === "number") { - return Option.some([ - ...parent.slice(0, key.value), - child.value, - ...parent.slice(key.value + 1), - ] as T) - } + if (Array.isArray(parent)) + return typeof key.value === "number" + ? Option.some([ + ...parent.slice(0, key.value), + child.value, + ...parent.slice(key.value + 1), + ] as T) + : Option.none() if (typeof parent === "object") - return Option.some({ ...parent, [key.value]: child.value }) + return Object.assign( + Object.create(Object.getPrototypeOf(parent)), + { ...parent, [key.value]: child.value }, + ) return Option.none() }