Home / Function/ update_effect() — svelte Function Reference

update_effect() — svelte Function Reference

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

Entity Profile

Dependency Diagram

graph TD
  19374192_7fff_dd82_3581_d62b472dfbdd["update_effect()"]
  bde4209f_8ffc_1594_4024_b1835a44bcf6["runtime.js"]
  19374192_7fff_dd82_3581_d62b472dfbdd -->|defined in| bde4209f_8ffc_1594_4024_b1835a44bcf6
  c19ea0c4_0909_9915_ac53_f65d5af69919["root()"]
  c19ea0c4_0909_9915_ac53_f65d5af69919 -->|calls| 19374192_7fff_dd82_3581_d62b472dfbdd
  3991a63f_13e1_fb44_3044_00252e1380f3["flush_queued_effects()"]
  3991a63f_13e1_fb44_3044_00252e1380f3 -->|calls| 19374192_7fff_dd82_3581_d62b472dfbdd
  9764bb93_860c_6dee_2112_890b69ee0aa3["create_effect()"]
  9764bb93_860c_6dee_2112_890b69ee0aa3 -->|calls| 19374192_7fff_dd82_3581_d62b472dfbdd
  804fc9e9_e855_0cc1_9d2e_7104f9cfa1f9["legacy_pre_effect_reset()"]
  804fc9e9_e855_0cc1_9d2e_7104f9cfa1f9 -->|calls| 19374192_7fff_dd82_3581_d62b472dfbdd
  8cbd2617_a90a_da93_cf30_82f21876749c["flush_eager_effects()"]
  8cbd2617_a90a_da93_cf30_82f21876749c -->|calls| 19374192_7fff_dd82_3581_d62b472dfbdd
  6479f832_c1d7_7636_b658_b3f9c70d9af0["set_signal_status()"]
  19374192_7fff_dd82_3581_d62b472dfbdd -->|calls| 6479f832_c1d7_7636_b658_b3f9c70d9af0
  3b5b04b8_bc64_dc87_37e2_2191011816f5["set_dev_current_component_function()"]
  19374192_7fff_dd82_3581_d62b472dfbdd -->|calls| 3b5b04b8_bc64_dc87_37e2_2191011816f5
  0fccb27b_7aac_6445_e857_e807f2ce0d7d["set_dev_stack()"]
  19374192_7fff_dd82_3581_d62b472dfbdd -->|calls| 0fccb27b_7aac_6445_e857_e807f2ce0d7d
  4ea05c55_65be_458d_6860_73b27d2a8b46["destroy_block_effect_children()"]
  19374192_7fff_dd82_3581_d62b472dfbdd -->|calls| 4ea05c55_65be_458d_6860_73b27d2a8b46
  5ca6cce3_c139_2ec0_550b_59f1139f113b["destroy_effect_children()"]
  19374192_7fff_dd82_3581_d62b472dfbdd -->|calls| 5ca6cce3_c139_2ec0_550b_59f1139f113b
  fcb0bcf2_766c_0be2_4fa0_0e3c7e97e0a0["execute_effect_teardown()"]
  19374192_7fff_dd82_3581_d62b472dfbdd -->|calls| fcb0bcf2_766c_0be2_4fa0_0e3c7e97e0a0
  9e5743e3_8b9e_0ad6_5140_1a5ffaca62cd["update_reaction()"]
  19374192_7fff_dd82_3581_d62b472dfbdd -->|calls| 9e5743e3_8b9e_0ad6_5140_1a5ffaca62cd
  4af42bfc_fe4c_0160_eada_7d109f39af3a["increment_write_version()"]
  19374192_7fff_dd82_3581_d62b472dfbdd -->|calls| 4af42bfc_fe4c_0160_eada_7d109f39af3a
  style 19374192_7fff_dd82_3581_d62b472dfbdd fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

packages/svelte/src/internal/client/runtime.js lines 423–477

export function update_effect(effect) {
	var flags = effect.f;

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

	set_signal_status(effect, CLEAN);

	var previous_effect = active_effect;
	var was_updating_effect = is_updating_effect;

	active_effect = effect;
	is_updating_effect = true;

	if (DEV) {
		var previous_component_fn = dev_current_component_function;
		set_dev_current_component_function(effect.component_function);
		var previous_stack = /** @type {any} */ (dev_stack);
		// only block effects have a dev stack, keep the current one otherwise
		set_dev_stack(effect.dev_stack ?? dev_stack);
	}

	try {
		if ((flags & (BLOCK_EFFECT | MANAGED_EFFECT)) !== 0) {
			destroy_block_effect_children(effect);
		} else {
			destroy_effect_children(effect);
		}

		execute_effect_teardown(effect);
		var teardown = update_reaction(effect);
		effect.teardown = typeof teardown === 'function' ? teardown : null;
		effect.wv = write_version;

		// In DEV, increment versions of any sources that were written to during the effect,
		// so that they are correctly marked as dirty when the effect re-runs
		if (DEV && tracing_mode_flag && (effect.f & DIRTY) !== 0 && effect.deps !== null) {
			for (var dep of effect.deps) {
				if (dep.set_during_effect) {
					dep.wv = increment_write_version();
					dep.set_during_effect = false;
				}
			}
		}
	} finally {
		is_updating_effect = was_updating_effect;
		active_effect = previous_effect;

		if (DEV) {
			set_dev_current_component_function(previous_component_fn);
			set_dev_stack(previous_stack);
		}
	}
}

Domain

Subdomains

Frequently Asked Questions

What does update_effect() do?
update_effect() is a function in the svelte codebase, defined in packages/svelte/src/internal/client/runtime.js.
Where is update_effect() defined?
update_effect() is defined in packages/svelte/src/internal/client/runtime.js at line 423.
What does update_effect() call?
update_effect() calls 8 function(s): destroy_block_effect_children, destroy_effect_children, execute_effect_teardown, increment_write_version, set_dev_current_component_function, set_dev_stack, set_signal_status, update_reaction.
What calls update_effect()?
update_effect() is called by 5 function(s): create_effect, flush_eager_effects, flush_queued_effects, 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