From d95b6e7e5cffd63b5e4248d2c0322c9a35bf4d7d Mon Sep 17 00:00:00 2001 From: Rich Harris Date: Tue, 20 Feb 2024 18:28:29 -0500 Subject: [PATCH] move more stuff --- .../client/reactivity/computations.js | 83 ++++++++++++++++++- .../svelte/src/internal/client/runtime.js | 83 +------------------ 2 files changed, 82 insertions(+), 84 deletions(-) diff --git a/packages/svelte/src/internal/client/reactivity/computations.js b/packages/svelte/src/internal/client/reactivity/computations.js index a5b55d4571..fabd86a09d 100644 --- a/packages/svelte/src/internal/client/reactivity/computations.js +++ b/packages/svelte/src/internal/client/reactivity/computations.js @@ -9,18 +9,97 @@ import { RENDER_EFFECT, UNINITIALIZED, UNOWNED, - create_computation_signal, current_block, current_component_context, current_consumer, current_effect, destroy_signal, flush_local_render_effects, - push_reference, schedule_effect } from '../runtime.js'; import { default_equals, safe_equal } from './equality.js'; +/** + * @template V + * @param {import('../types.js').SignalFlags} flags + * @param {V} value + * @param {import('../types.js').Block | null} block + * @returns {import('../types.js').ComputationSignal | import('../types.js').ComputationSignal & import('../types.js').SourceSignalDebug} + */ +function create_computation_signal(flags, value, block) { + if (DEV) { + return { + // block + b: block, + // consumers + c: null, + // destroy + d: null, + // equals + e: null, + // flags + f: flags, + // init + i: null, + // level + l: 0, + // references + r: null, + // value + v: value, + // write version + w: 0, + // context: We can remove this if we get rid of beforeUpdate/afterUpdate + x: null, + // destroy + y: null, + // this is for DEV only + inspect: new Set() + }; + } + + return { + // block + b: block, + // consumers + c: null, + // destroy + d: null, + // equals + e: null, + // flags + f: flags, + // level + l: 0, + // init + i: null, + // references + r: null, + // value + v: value, + // write version + w: 0, + // context: We can remove this if we get rid of beforeUpdate/afterUpdate + x: null, + // destroy + y: null + }; +} + +/** + * @param {import('../types.js').ComputationSignal} target_signal + * @param {import('../types.js').ComputationSignal} ref_signal + * @returns {void} + */ +export function push_reference(target_signal, ref_signal) { + const references = target_signal.r; + if (references === null) { + target_signal.r = [ref_signal]; + } else { + references.push(ref_signal); + } +} + /** * @param {import('../types.js').EffectType} type * @param {(() => void | (() => void)) | ((b: import('../types.js').Block) => void | (() => void))} init diff --git a/packages/svelte/src/internal/client/runtime.js b/packages/svelte/src/internal/client/runtime.js index b5510fb7f1..1ec8f16e19 100644 --- a/packages/svelte/src/internal/client/runtime.js +++ b/packages/svelte/src/internal/client/runtime.js @@ -147,87 +147,6 @@ export function batch_inspect(target, prop, receiver) { }; } -/** - * @template V - * @param {import('./types.js').SignalFlags} flags - * @param {V} value - * @param {import('./types.js').Block | null} block - * @returns {import('./types.js').ComputationSignal | import('./types.js').ComputationSignal & import('./types.js').SourceSignalDebug} - */ -export function create_computation_signal(flags, value, block) { - if (DEV) { - return { - // block - b: block, - // consumers - c: null, - // destroy - d: null, - // equals - e: null, - // flags - f: flags, - // init - i: null, - // level - l: 0, - // references - r: null, - // value - v: value, - // write version - w: 0, - // context: We can remove this if we get rid of beforeUpdate/afterUpdate - x: null, - // destroy - y: null, - // this is for DEV only - inspect: new Set() - }; - } - - return { - // block - b: block, - // consumers - c: null, - // destroy - d: null, - // equals - e: null, - // flags - f: flags, - // level - l: 0, - // init - i: null, - // references - r: null, - // value - v: value, - // write version - w: 0, - // context: We can remove this if we get rid of beforeUpdate/afterUpdate - x: null, - // destroy - y: null - }; -} - -/** - * @param {import('./types.js').ComputationSignal} target_signal - * @param {import('./types.js').ComputationSignal} ref_signal - * @returns {void} - */ -export function push_reference(target_signal, ref_signal) { - const references = target_signal.r; - if (references === null) { - target_signal.r = [ref_signal]; - } else { - references.push(ref_signal); - } -} - /** * @template V * @param {import('./types.js').Signal} signal @@ -1294,7 +1213,7 @@ const STATUS_MASK = ~(DIRTY | MAYBE_DIRTY | CLEAN); * @param {number} status * @returns {void} */ -export function set_signal_status(signal, status) { +function set_signal_status(signal, status) { signal.f = (signal.f & STATUS_MASK) | status; }