Home / Function/ trace() — svelte Function Reference

trace() — svelte Function Reference

Architecture documentation for the trace() function in tracing.js from the svelte codebase.

Entity Profile

Dependency Diagram

graph TD
  62511000_fb03_0d9c_03d6_7b13cd37ac90["trace()"]
  2696eb67_452f_4c32_3e13_ee172192b366["tracing.js"]
  62511000_fb03_0d9c_03d6_7b13cd37ac90 -->|defined in| 2696eb67_452f_4c32_3e13_ee172192b366
  c55b2607_d45b_c327_8826_7bdf245d80f6["proxy()"]
  c55b2607_d45b_c327_8826_7bdf245d80f6 -->|calls| 62511000_fb03_0d9c_03d6_7b13cd37ac90
  a08b6cc5_af73_1be4_d02f_3113cf8a8305["get()"]
  a08b6cc5_af73_1be4_d02f_3113cf8a8305 -->|calls| 62511000_fb03_0d9c_03d6_7b13cd37ac90
  a814b193_e12a_4037_c3c8_dfd45f3bd0bb["untrack()"]
  62511000_fb03_0d9c_03d6_7b13cd37ac90 -->|calls| a814b193_e12a_4037_c3c8_dfd45f3bd0bb
  461d1f5f_ffa4_d984_98a4_868566c66f30["effect_tracking()"]
  62511000_fb03_0d9c_03d6_7b13cd37ac90 -->|calls| 461d1f5f_ffa4_d984_98a4_868566c66f30
  a985ae40_8ef8_7ef2_adad_116fbf97e70c["effect()"]
  62511000_fb03_0d9c_03d6_7b13cd37ac90 -->|calls| a985ae40_8ef8_7ef2_adad_116fbf97e70c
  70154e87_24eb_dcf5_8315_f0830d757263["log_entry()"]
  62511000_fb03_0d9c_03d6_7b13cd37ac90 -->|calls| 70154e87_24eb_dcf5_8315_f0830d757263
  style 62511000_fb03_0d9c_03d6_7b13cd37ac90 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

packages/svelte/src/internal/client/dev/tracing.js lines 91–131

export function trace(label, fn) {
	var previously_tracing_expressions = tracing_expressions;

	try {
		tracing_expressions = { entries: new Map(), reaction: active_reaction };

		var start = performance.now();
		var value = fn();
		var time = (performance.now() - start).toFixed(2);

		var prefix = untrack(label);

		if (!effect_tracking()) {
			// eslint-disable-next-line no-console
			console.log(`${prefix} %cran outside of an effect (${time}ms)`, 'color: grey');
		} else if (tracing_expressions.entries.size === 0) {
			// eslint-disable-next-line no-console
			console.log(`${prefix} %cno reactive dependencies (${time}ms)`, 'color: grey');
		} else {
			// eslint-disable-next-line no-console
			console.group(`${prefix} %c(${time}ms)`, 'color: grey');

			var entries = tracing_expressions.entries;

			untrack(() => {
				for (const [signal, traces] of entries) {
					log_entry(signal, traces);
				}
			});

			tracing_expressions = null;

			// eslint-disable-next-line no-console
			console.groupEnd();
		}

		return value;
	} finally {
		tracing_expressions = previously_tracing_expressions;
	}
}

Domain

Subdomains

Called By

Frequently Asked Questions

What does trace() do?
trace() is a function in the svelte codebase, defined in packages/svelte/src/internal/client/dev/tracing.js.
Where is trace() defined?
trace() is defined in packages/svelte/src/internal/client/dev/tracing.js at line 91.
What does trace() call?
trace() calls 4 function(s): effect, effect_tracking, log_entry, untrack.
What calls trace()?
trace() is called by 2 function(s): get, proxy.

Analyze Your Own Codebase

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

Try Supermodel Free