From fc56d0e52a705ea0f0cfe137605c43ef7e024203 Mon Sep 17 00:00:00 2001 From: Rich Harris Date: Tue, 10 Feb 2026 21:40:37 -0500 Subject: [PATCH] WIP --- packages/svelte/src/internal/client/index.js | 3 +-- .../svelte/src/internal/client/runtime.js | 24 ------------------- packages/svelte/src/internal/server/index.js | 2 +- packages/svelte/src/internal/shared/utils.js | 24 +++++++++++++++++++ 4 files changed, 26 insertions(+), 27 deletions(-) diff --git a/packages/svelte/src/internal/client/index.js b/packages/svelte/src/internal/client/index.js index 7fcaf77dc5..bc9f356c8e 100644 --- a/packages/svelte/src/internal/client/index.js +++ b/packages/svelte/src/internal/client/index.js @@ -153,7 +153,6 @@ export { safe_get, tick, untrack, - exclude_from_object, deep_read, deep_read_state, active_effect @@ -171,7 +170,7 @@ export { } from './dom/operations.js'; export { attr, clsx } from '../shared/attributes.js'; export { snapshot } from '../shared/clone.js'; -export { noop, fallback, to_array } from '../shared/utils.js'; +export { noop, fallback, to_array, exclude_from_object } from '../shared/utils.js'; export { invalid_default_snippet, validate_dynamic_element_tag, diff --git a/packages/svelte/src/internal/client/runtime.js b/packages/svelte/src/internal/client/runtime.js index 70eeabb789..d8fa2740c0 100644 --- a/packages/svelte/src/internal/client/runtime.js +++ b/packages/svelte/src/internal/client/runtime.js @@ -744,30 +744,6 @@ export function untrack(fn) { } } -/** - * @param {Record} obj - * @param {Array} keys - * @returns {Record} - */ -export function exclude_from_object(obj, keys) { - /** @type {Record} */ - var result = {}; - - for (var key in obj) { - if (!keys.includes(key)) { - result[key] = obj[key]; - } - } - - for (var symbol of Object.getOwnPropertySymbols(obj)) { - if (Object.propertyIsEnumerable.call(obj, symbol) && !keys.includes(symbol)) { - result[symbol] = obj[symbol]; - } - } - - return result; -} - /** * Possibly traverse an object and read all its properties so that they're all reactive in case this is `$state`. * Does only check first level of an object for performance reasons (heuristic should be good for 99% of all cases). diff --git a/packages/svelte/src/internal/server/index.js b/packages/svelte/src/internal/server/index.js index e2463ea73b..d71585a30d 100644 --- a/packages/svelte/src/internal/server/index.js +++ b/packages/svelte/src/internal/server/index.js @@ -457,7 +457,7 @@ export { push_element, pop_element, validate_snippet_args } from './dev.js'; export { snapshot } from '../shared/clone.js'; -export { fallback, to_array } from '../shared/utils.js'; +export { fallback, to_array, exclude_from_object } from '../shared/utils.js'; export { invalid_default_snippet, diff --git a/packages/svelte/src/internal/shared/utils.js b/packages/svelte/src/internal/shared/utils.js index 771f6b345c..2ad7f974e9 100644 --- a/packages/svelte/src/internal/shared/utils.js +++ b/packages/svelte/src/internal/shared/utils.js @@ -117,3 +117,27 @@ export function to_array(value, n) { return array; } + +/** + * @param {Record} obj + * @param {Array} keys + * @returns {Record} + */ +export function exclude_from_object(obj, keys) { + /** @type {Record} */ + var result = {}; + + for (var key in obj) { + if (!keys.includes(key)) { + result[key] = obj[key]; + } + } + + for (var symbol of Object.getOwnPropertySymbols(obj)) { + if (Object.propertyIsEnumerable.call(obj, symbol) && !keys.includes(symbol)) { + result[symbol] = obj[symbol]; + } + } + + return result; +}