CallExpression() — svelte Function Reference
Architecture documentation for the CallExpression() function in CallExpression.js from the svelte codebase.
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
Calls
- bindable_invalid_location()
- effect_invalid_placement()
- get_function_label()
- get_parent()
- get_rune()
- host_invalid_placement()
- inspect_trace_generator()
- inspect_trace_invalid_placement()
- is_class_property_assignment_at_constructor_root()
- is_class_property_definition()
- is_pure()
- is_safe_identifier()
- is_variable_declaration()
- locate_node()
- props_duplicate()
- props_id_invalid_placement()
- props_invalid_placement()
- rune_invalid_arguments()
- rune_invalid_arguments_length()
- rune_invalid_spread()
- state_invalid_placement()
Called By
Source
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