From 2600ffea2bd241c57f3ab48bfbf799f585778955 Mon Sep 17 00:00:00 2001 From: sliang-code Date: Fri, 1 May 2026 02:05:44 -0400 Subject: [PATCH] feat: Implement getOrInsert and getOrInsertComputed methods Add methods to get or insert values in the map. --- packages/svelte/src/reactivity/map.js | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/packages/svelte/src/reactivity/map.js b/packages/svelte/src/reactivity/map.js index 48d06a05a7..8043c40966 100644 --- a/packages/svelte/src/reactivity/map.js +++ b/packages/svelte/src/reactivity/map.js @@ -153,6 +153,22 @@ export class SvelteMap extends Map { return super.get(key); } + getOrInsert(key, value) { + if (super.has(key)) { + return /** @type {V} */ (super.get(key)); + } + this.set(key, value); + return super.get(key); + } + + getOrInsertComputed(key, callbackfn) { + if (super.has(key)) { + return /** @type {V} */ (super.get(key)); + } + this.set(key, callbackfn(key)); + return super.get(key); + } + /** * @param {K} key * @param {V} value