mirror of https://github.com/sveltejs/svelte
parent
f00cdee0a1
commit
a21bb4c7e8
@ -0,0 +1,25 @@
|
||||
/** @import { Derived, Signal } from '#client' */
|
||||
import { CLEAN, CONNECTED, DIRTY, MAYBE_DIRTY } from '#client/constants';
|
||||
|
||||
const STATUS_MASK = ~(DIRTY | MAYBE_DIRTY | CLEAN);
|
||||
|
||||
/**
|
||||
* @param {Signal} signal
|
||||
* @param {number} status
|
||||
*/
|
||||
export function set_signal_status(signal, status) {
|
||||
signal.f = (signal.f & STATUS_MASK) | status;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set a derived's status to CLEAN or MAYBE_DIRTY based on its connection state.
|
||||
* @param {Derived} derived
|
||||
*/
|
||||
export function update_derived_status(derived) {
|
||||
// Only mark as MAYBE_DIRTY if disconnected and has dependencies.
|
||||
if ((derived.f & CONNECTED) !== 0 || derived.deps === null) {
|
||||
set_signal_status(derived, CLEAN);
|
||||
} else {
|
||||
set_signal_status(derived, MAYBE_DIRTY);
|
||||
}
|
||||
}
|
||||
Loading…
Reference in new issue