Home / File/ utils.js — svelte Source File

utils.js — svelte Source File

Architecture documentation for utils.js, a javascript file in the svelte codebase. 3 imports, 2 dependents.

File javascript ClientRuntime Reactivity 3 imports 2 dependents 2 functions

Entity Profile

Dependency Diagram

graph LR
  5a859a0f_eee2_e7f4_f1cd_3c52fb468bd4["utils.js"]
  75905fba_56c6_c9fc_1dbc_6e53bfb2ebc5["status.js"]
  5a859a0f_eee2_e7f4_f1cd_3c52fb468bd4 --> 75905fba_56c6_c9fc_1dbc_6e53bfb2ebc5
  6479f832_c1d7_7636_b658_b3f9c70d9af0["set_signal_status"]
  5a859a0f_eee2_e7f4_f1cd_3c52fb468bd4 --> 6479f832_c1d7_7636_b658_b3f9c70d9af0
  54c2bfce_50b6_b8cc_4371_e1e14f283fb3["constants"]
  5a859a0f_eee2_e7f4_f1cd_3c52fb468bd4 --> 54c2bfce_50b6_b8cc_4371_e1e14f283fb3
  6d3d606a_fb7a_54af_1ece_f1eb12f174d1["boundary.js"]
  6d3d606a_fb7a_54af_1ece_f1eb12f174d1 --> 5a859a0f_eee2_e7f4_f1cd_3c52fb468bd4
  d8e42d9d_2e3c_635c_19d3_b946a4341c0f["batch.js"]
  d8e42d9d_2e3c_635c_19d3_b946a4341c0f --> 5a859a0f_eee2_e7f4_f1cd_3c52fb468bd4
  style 5a859a0f_eee2_e7f4_f1cd_3c52fb468bd4 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

/** @import { Derived, Effect, Value } from '#client' */
import { CLEAN, DERIVED, DIRTY, MAYBE_DIRTY, WAS_MARKED } from '#client/constants';
import { set_signal_status } from './status.js';

/**
 * @param {Value[] | null} deps
 */
function clear_marked(deps) {
	if (deps === null) return;

	for (const dep of deps) {
		if ((dep.f & DERIVED) === 0 || (dep.f & WAS_MARKED) === 0) {
			continue;
		}

		dep.f ^= WAS_MARKED;

		clear_marked(/** @type {Derived} */ (dep).deps);
	}
}

/**
 * @param {Effect} effect
 * @param {Set<Effect>} dirty_effects
 * @param {Set<Effect>} maybe_dirty_effects
 */
export function defer_effect(effect, dirty_effects, maybe_dirty_effects) {
	if ((effect.f & DIRTY) !== 0) {
		dirty_effects.add(effect);
	} else if ((effect.f & MAYBE_DIRTY) !== 0) {
		maybe_dirty_effects.add(effect);
	}

	// Since we're not executing these effects now, we need to clear any WAS_MARKED flags
	// so that other batches can correctly reach these effects during their own traversal
	clear_marked(effect.deps);

	// mark as clean so they get scheduled if they depend on pending async state
	set_signal_status(effect, CLEAN);
}

Domain

Subdomains

Dependencies

Frequently Asked Questions

What does utils.js do?
utils.js is a source file in the svelte codebase, written in javascript. It belongs to the ClientRuntime domain, Reactivity subdomain.
What functions are defined in utils.js?
utils.js defines 2 function(s): clear_marked, defer_effect.
What does utils.js depend on?
utils.js imports 3 module(s): constants, set_signal_status, status.js.
What files import utils.js?
utils.js is imported by 2 file(s): batch.js, boundary.js.
Where is utils.js in the architecture?
utils.js is located at packages/svelte/src/internal/client/reactivity/utils.js (domain: ClientRuntime, subdomain: Reactivity, directory: packages/svelte/src/internal/client/reactivity).

Analyze Your Own Codebase

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

Try Supermodel Free