From 5fea78937d2cd1f5e5bdf080e74b52d1eb7006d1 Mon Sep 17 00:00:00 2001 From: godzylinux Date: Sat, 18 May 2024 23:52:42 +0330 Subject: [PATCH] simplified reactivity for map --- packages/svelte/src/reactivity/map.js | 9 ++++----- packages/svelte/src/reactivity/utils.js | 2 +- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/packages/svelte/src/reactivity/map.js b/packages/svelte/src/reactivity/map.js index 7ed7d01df9..c660eee1d9 100644 --- a/packages/svelte/src/reactivity/map.js +++ b/packages/svelte/src/reactivity/map.js @@ -2,7 +2,7 @@ import { make_reactive, NOTIFY_WITH_ALL_PARAMS } from './utils.js'; export const ReactiveMap = make_reactive(Map, { write_properties: ['clear', 'delete', 'set'], - read_properties: ['get', 'keys', 'entries', 'values', 'has'], + read_properties: ['get', 'keys', 'has'], interceptors: { set: (notify_read_methods, value, property, ...params) => { if (value.get(params[0]) === params[1]) { @@ -11,15 +11,14 @@ export const ReactiveMap = make_reactive(Map, { if (!value.has(params[0])) { notify_read_methods(['keys']); } - notify_read_methods(['entries', 'values']); - notify_read_methods(['get', 'has'], params[1]); + notify_read_methods(['get', 'has'], params[0]); return true; }, clear: (notify_read_methods, value, property, ...params) => { if (value.size === 0) { return false; } - notify_read_methods(['keys', 'values', 'entries', 'has'], NOTIFY_WITH_ALL_PARAMS); + notify_read_methods(['keys', 'has'], NOTIFY_WITH_ALL_PARAMS); return true; }, delete: (notify_read_methods, value, property, ...params) => { @@ -27,7 +26,7 @@ export const ReactiveMap = make_reactive(Map, { return false; } notify_read_methods(['get', 'has'], params[0]); - notify_read_methods(['keys', 'values', 'entries']); + notify_read_methods(['keys']); return true; } } diff --git a/packages/svelte/src/reactivity/utils.js b/packages/svelte/src/reactivity/utils.js index 4d0e100710..d6d826612b 100644 --- a/packages/svelte/src/reactivity/utils.js +++ b/packages/svelte/src/reactivity/utils.js @@ -142,7 +142,7 @@ function create_notifiers( entity_instance, property, ...params - ) === true; + ) !== false; // not saying `===true` because not returning anything is considered true for this scenario as well. if (!is_property_reactive) { return notifiers;