diff --git a/packages/svelte/src/internal/client/render.js b/packages/svelte/src/internal/client/render.js index cd55bc17d1..e167b61d10 100644 --- a/packages/svelte/src/internal/client/render.js +++ b/packages/svelte/src/internal/client/render.js @@ -2606,7 +2606,6 @@ export function spread_props(props) { * events?: Events; * context?: Map; * intro?: boolean; - * immutable?: boolean; * recover?: false; * }} options * @returns {Exports & { $destroy: () => void; $set: (props: Partial) => void; }} @@ -2624,15 +2623,8 @@ export function createRoot(component, options) { * @param {any} value */ function add_prop(name, value) { - const prop = source( - value, - options.immutable - ? /** - * @param {any} a - * @param {any} b - */ (a, b) => a === b - : safe_equal - ); + const prop = source(value); + prop.e = safe_equal; // TODO should this be default_equal? _sources[name] = prop; define_property(_props, name, { get() { @@ -2666,11 +2658,10 @@ export function createRoot(component, options) { return _props[property]; } }); - const props_source = source( - props_proxy, - // We're resetting the same proxy instance for updates, therefore bypass equality checks - () => false - ); + const props_source = source(props_proxy); + + // We're resetting the same proxy instance for updates, therefore bypass equality checks + props_source.e = safe_equal; let [accessors, $destroy] = mount(component, { ...options, diff --git a/packages/svelte/src/internal/client/runtime.js b/packages/svelte/src/internal/client/runtime.js index dd40fdad36..9cb0e0c3ef 100644 --- a/packages/svelte/src/internal/client/runtime.js +++ b/packages/svelte/src/internal/client/runtime.js @@ -1142,25 +1142,20 @@ export function derived(init) { /** * @template V * @param {V} initial_value - * @param {import('./types.js').EqualsFunctions} [equals] * @returns {import('./types.js').SourceSignal} */ /*#__NO_SIDE_EFFECTS__*/ -export function source(initial_value, equals) { +export function source(initial_value) { const source = create_source_signal(SOURCE | CLEAN, initial_value); source.x = current_component_context; - source.e = get_equals_method(equals); + source.e = get_equals_method(); return source; } /** - * @param {import('./types.js').EqualsFunctions} [equals] * @returns {import('./types.js').EqualsFunctions} */ -function get_equals_method(equals) { - if (equals !== undefined) { - return equals; - } +function get_equals_method() { const context = current_component_context; if (context && !context.i) { return safe_equal; diff --git a/packages/svelte/src/legacy/legacy-client.js b/packages/svelte/src/legacy/legacy-client.js index 8c63213208..9ad99401d8 100644 --- a/packages/svelte/src/legacy/legacy-client.js +++ b/packages/svelte/src/legacy/legacy-client.js @@ -68,7 +68,6 @@ class Svelte4Component { target: options.target, props: { ...options.props, $$events: this.#events }, context: options.context, - immutable: options.immutable, intro: options.intro, recover: options.recover });