Home / Function/ CallExpression() — svelte Function Reference

CallExpression() — svelte Function Reference

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

Function javascript Compiler Transformer calls 21 called by 1

Entity Profile

Dependency Diagram

graph TD
  f847bd70_7e16_ed37_5fde_c34cd0ce1d43["CallExpression()"]
  3f0209c9_7af2_542f_1c9c_3be0eb046971["CallExpression.js"]
  f847bd70_7e16_ed37_5fde_c34cd0ce1d43 -->|defined in| 3f0209c9_7af2_542f_1c9c_3be0eb046971
  aced5321_4478_4f67_ba8c_e122713c1d9f["calculate_blockers()"]
  aced5321_4478_4f67_ba8c_e122713c1d9f -->|calls| f847bd70_7e16_ed37_5fde_c34cd0ce1d43
  68a38b3b_6f0f_ed43_404f_3d00302677a2["get_parent()"]
  f847bd70_7e16_ed37_5fde_c34cd0ce1d43 -->|calls| 68a38b3b_6f0f_ed43_404f_3d00302677a2
  bed91719_d047_2256_e199_ee875d5f49b9["get_rune()"]
  f847bd70_7e16_ed37_5fde_c34cd0ce1d43 -->|calls| bed91719_d047_2256_e199_ee875d5f49b9
  960877c1_9d4f_d6b5_d8ed_5c2abf978571["rune_invalid_spread()"]
  f847bd70_7e16_ed37_5fde_c34cd0ce1d43 -->|calls| 960877c1_9d4f_d6b5_d8ed_5c2abf978571
  e40e188e_6def_6359_11b9_9532abe99b8d["is_safe_identifier()"]
  f847bd70_7e16_ed37_5fde_c34cd0ce1d43 -->|calls| e40e188e_6def_6359_11b9_9532abe99b8d
  cb8ee77c_13d6_90aa_ccc1_879ea7e7b1d3["rune_invalid_arguments_length()"]
  f847bd70_7e16_ed37_5fde_c34cd0ce1d43 -->|calls| cb8ee77c_13d6_90aa_ccc1_879ea7e7b1d3
  8089fa5c_6cd4_37a3_8db9_61d8c798db57["bindable_invalid_location()"]
  f847bd70_7e16_ed37_5fde_c34cd0ce1d43 -->|calls| 8089fa5c_6cd4_37a3_8db9_61d8c798db57
  b08c438a_ecda_a764_48d1_0e067226a8d5["rune_invalid_arguments()"]
  f847bd70_7e16_ed37_5fde_c34cd0ce1d43 -->|calls| b08c438a_ecda_a764_48d1_0e067226a8d5
  0ca6ca6b_88c4_91f9_a87e_346ec7bda334["host_invalid_placement()"]
  f847bd70_7e16_ed37_5fde_c34cd0ce1d43 -->|calls| 0ca6ca6b_88c4_91f9_a87e_346ec7bda334
  7316bf9f_1dc2_2667_c25e_f94c9552da45["props_duplicate()"]
  f847bd70_7e16_ed37_5fde_c34cd0ce1d43 -->|calls| 7316bf9f_1dc2_2667_c25e_f94c9552da45
  32713a8d_2f1a_8529_1aa0_e5bd1592f7a4["props_invalid_placement()"]
  f847bd70_7e16_ed37_5fde_c34cd0ce1d43 -->|calls| 32713a8d_2f1a_8529_1aa0_e5bd1592f7a4
  1a9e8111_5028_12c0_d837_721ff44629cc["props_id_invalid_placement()"]
  f847bd70_7e16_ed37_5fde_c34cd0ce1d43 -->|calls| 1a9e8111_5028_12c0_d837_721ff44629cc
  af91dfb8_8408_6f01_ce5c_fb5099917fd1["is_variable_declaration()"]
  f847bd70_7e16_ed37_5fde_c34cd0ce1d43 -->|calls| af91dfb8_8408_6f01_ce5c_fb5099917fd1
  style f847bd70_7e16_ed37_5fde_c34cd0ce1d43 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

packages/svelte/src/compiler/phases/2-analyze/visitors/CallExpression.js lines 16–274

export function CallExpression(node, context) {
	const parent = /** @type {AST.SvelteNode} */ (get_parent(context.path, -1));

	const rune = get_rune(node, context.state.scope);

	if (rune && rune !== '$inspect') {
		for (const arg of node.arguments) {
			if (arg.type === 'SpreadElement') {
				e.rune_invalid_spread(node, rune);
			}
		}
	}

	switch (rune) {
		case null:
			if (!is_safe_identifier(node.callee, context.state.scope)) {
				context.state.analysis.needs_context = true;
			}

			break;

		case '$bindable':
			if (node.arguments.length > 1) {
				e.rune_invalid_arguments_length(node, '$bindable', 'zero or one arguments');
			}

			if (
				parent.type !== 'AssignmentPattern' ||
				context.path.at(-3)?.type !== 'ObjectPattern' ||
				context.path.at(-4)?.type !== 'VariableDeclarator' ||
				get_rune(
					/** @type {VariableDeclarator} */ (context.path.at(-4)).init,
					context.state.scope
				) !== '$props'
			) {
				e.bindable_invalid_location(node);
			}

			// We need context in case the bound prop is stale
			context.state.analysis.needs_context = true;

			break;

		case '$host':
			if (node.arguments.length > 0) {
				e.rune_invalid_arguments(node, '$host');
			} else if (context.state.ast_type === 'module' || !context.state.analysis.custom_element) {
				e.host_invalid_placement(node);
			}

			break;

		case '$props':
			if (context.state.has_props_rune) {
				e.props_duplicate(node, rune);
			}

			context.state.has_props_rune = true;

			if (
				parent.type !== 'VariableDeclarator' ||
				context.state.ast_type !== 'instance' ||
				context.state.scope !== context.state.analysis.instance.scope
			) {
				e.props_invalid_placement(node);
			}

			if (node.arguments.length > 0) {
				e.rune_invalid_arguments(node, rune);
			}

			break;

		case '$props.id': {
			const grand_parent = get_parent(context.path, -2);

			if (context.state.analysis.props_id) {
				e.props_duplicate(node, rune);
			}

			if (

Domain

Subdomains

Frequently Asked Questions

What does CallExpression() do?
CallExpression() is a function in the svelte codebase, defined in packages/svelte/src/compiler/phases/2-analyze/visitors/CallExpression.js.
Where is CallExpression() defined?
CallExpression() is defined in packages/svelte/src/compiler/phases/2-analyze/visitors/CallExpression.js at line 16.
What does CallExpression() call?
CallExpression() calls 21 function(s): bindable_invalid_location, effect_invalid_placement, get_function_label, get_parent, get_rune, host_invalid_placement, inspect_trace_generator, inspect_trace_invalid_placement, and 13 more.
What calls CallExpression()?
CallExpression() is called by 1 function(s): calculate_blockers.

Analyze Your Own Codebase

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

Try Supermodel Free