Home / Function/ is_dirty() — svelte Function Reference

is_dirty() — svelte Function Reference

Architecture documentation for the is_dirty() function in runtime.js from the svelte codebase.

Entity Profile

Dependency Diagram

graph TD
  9d7b1994_c635_b82f_ff1f_b19fc461c425["is_dirty()"]
  bde4209f_8ffc_1594_4024_b1835a44bcf6["runtime.js"]
  9d7b1994_c635_b82f_ff1f_b19fc461c425 -->|defined in| bde4209f_8ffc_1594_4024_b1835a44bcf6
  c19ea0c4_0909_9915_ac53_f65d5af69919["root()"]
  c19ea0c4_0909_9915_ac53_f65d5af69919 -->|calls| 9d7b1994_c635_b82f_ff1f_b19fc461c425
  3991a63f_13e1_fb44_3044_00252e1380f3["flush_queued_effects()"]
  3991a63f_13e1_fb44_3044_00252e1380f3 -->|calls| 9d7b1994_c635_b82f_ff1f_b19fc461c425
  804fc9e9_e855_0cc1_9d2e_7104f9cfa1f9["legacy_pre_effect_reset()"]
  804fc9e9_e855_0cc1_9d2e_7104f9cfa1f9 -->|calls| 9d7b1994_c635_b82f_ff1f_b19fc461c425
  8cbd2617_a90a_da93_cf30_82f21876749c["flush_eager_effects()"]
  8cbd2617_a90a_da93_cf30_82f21876749c -->|calls| 9d7b1994_c635_b82f_ff1f_b19fc461c425
  a08b6cc5_af73_1be4_d02f_3113cf8a8305["get()"]
  a08b6cc5_af73_1be4_d02f_3113cf8a8305 -->|calls| 9d7b1994_c635_b82f_ff1f_b19fc461c425
  e6ca562d_6ddf_c249_6259_b15d55cbdd91["update_derived()"]
  9d7b1994_c635_b82f_ff1f_b19fc461c425 -->|calls| e6ca562d_6ddf_c249_6259_b15d55cbdd91
  6479f832_c1d7_7636_b658_b3f9c70d9af0["set_signal_status()"]
  9d7b1994_c635_b82f_ff1f_b19fc461c425 -->|calls| 6479f832_c1d7_7636_b658_b3f9c70d9af0
  style 9d7b1994_c635_b82f_ff1f_b19fc461c425 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

packages/svelte/src/internal/client/runtime.js lines 152–190

export function is_dirty(reaction) {
	var flags = reaction.f;

	if ((flags & DIRTY) !== 0) {
		return true;
	}

	if (flags & DERIVED) {
		reaction.f &= ~WAS_MARKED;
	}

	if ((flags & MAYBE_DIRTY) !== 0) {
		var dependencies = /** @type {Value[]} */ (reaction.deps);
		var length = dependencies.length;

		for (var i = 0; i < length; i++) {
			var dependency = dependencies[i];

			if (is_dirty(/** @type {Derived} */ (dependency))) {
				update_derived(/** @type {Derived} */ (dependency));
			}

			if (dependency.wv > reaction.wv) {
				return true;
			}
		}

		if (
			(flags & CONNECTED) !== 0 &&
			// During time traveling we don't want to reset the status so that
			// traversal of the graph in the other batches still happens
			batch_values === null
		) {
			set_signal_status(reaction, CLEAN);
		}
	}

	return false;
}

Domain

Subdomains

Frequently Asked Questions

What does is_dirty() do?
is_dirty() is a function in the svelte codebase, defined in packages/svelte/src/internal/client/runtime.js.
Where is is_dirty() defined?
is_dirty() is defined in packages/svelte/src/internal/client/runtime.js at line 152.
What does is_dirty() call?
is_dirty() calls 2 function(s): set_signal_status, update_derived.
What calls is_dirty()?
is_dirty() is called by 5 function(s): flush_eager_effects, flush_queued_effects, get, legacy_pre_effect_reset, root.

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free