CallExpression() — svelte Function Reference
Architecture documentation for the CallExpression() function in CallExpression.js from the svelte codebase.
Entity Profile
Dependency Diagram
graph TD 4c3ed846_8317_e69b_ac65_659bd7d7be87["CallExpression()"] e39bc93c_3dfb_80d0_0493_0f19a0a6ec11["CallExpression.js"] 4c3ed846_8317_e69b_ac65_659bd7d7be87 -->|defined in| e39bc93c_3dfb_80d0_0493_0f19a0a6ec11 02f6530e_fa56_47b3_4872_0c19988f7dba["get_rune()"] 4c3ed846_8317_e69b_ac65_659bd7d7be87 -->|calls| 02f6530e_fa56_47b3_4872_0c19988f7dba 4e774bfb_7de8_5b02_4538_ffa59dec20ed["should_proxy()"] 4c3ed846_8317_e69b_ac65_659bd7d7be87 -->|calls| 4e774bfb_7de8_5b02_4538_ffa59dec20ed 0c80bee0_5da1_d62c_3f0b_f083fa97201a["is_ignored()"] 4c3ed846_8317_e69b_ac65_659bd7d7be87 -->|calls| 0c80bee0_5da1_d62c_3f0b_f083fa97201a 5fe1e63b_2e15_33ec_6778_161cc2afe51f["transform_inspect_rune()"] 4c3ed846_8317_e69b_ac65_659bd7d7be87 -->|calls| 5fe1e63b_2e15_33ec_6778_161cc2afe51f 87886485_f7af_45a6_596d_7f22c5d05337["get()"] 4c3ed846_8317_e69b_ac65_659bd7d7be87 -->|calls| 87886485_f7af_45a6_596d_7f22c5d05337 d11a3de9_9bf1_c5eb_8886_73306d787b6e["evaluate()"] 4c3ed846_8317_e69b_ac65_659bd7d7be87 -->|calls| d11a3de9_9bf1_c5eb_8886_73306d787b6e style 4c3ed846_8317_e69b_ac65_659bd7d7be87 fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
packages/svelte/src/compiler/phases/3-transform/client/visitors/CallExpression.js lines 13–118
export function CallExpression(node, context) {
const rune = get_rune(node, context.state.scope);
switch (rune) {
case '$host':
return b.id('$$props.$$host');
case '$effect.tracking':
return b.call('$.effect_tracking');
// transform state field assignments in constructors
case '$state':
case '$state.raw': {
let arg = node.arguments[0];
/** @type {Expression | undefined} */
let value = undefined;
if (arg) {
value = /** @type {Expression} */ (context.visit(node.arguments[0]));
if (
rune === '$state' &&
should_proxy(/** @type {Expression} */ (arg), context.state.scope)
) {
value = b.call('$.proxy', value);
}
}
const callee = b.id('$.state', node.callee.loc);
return b.call(callee, value);
}
case '$derived':
case '$derived.by': {
let fn = /** @type {Expression} */ (context.visit(node.arguments[0]));
return b.call('$.derived', rune === '$derived' ? b.thunk(fn) : fn);
}
case '$state.eager':
return b.call(
'$.eager',
b.thunk(/** @type {Expression} */ (context.visit(node.arguments[0])))
);
case '$state.snapshot':
return b.call(
'$.snapshot',
/** @type {Expression} */ (context.visit(node.arguments[0])),
is_ignored(node, 'state_snapshot_uncloneable') && b.true
);
case '$effect':
case '$effect.pre': {
const callee = rune === '$effect' ? '$.user_effect' : '$.user_pre_effect';
const func = /** @type {Expression} */ (context.visit(node.arguments[0]));
const expr = b.call(callee, /** @type {Expression} */ (func));
expr.callee.loc = node.callee.loc; // ensure correct mapping
return expr;
}
case '$effect.root':
return b.call(
'$.effect_root',
.../** @type {Expression[]} */ (node.arguments.map((arg) => context.visit(arg)))
);
case '$effect.pending':
return b.call('$.eager', b.thunk(b.call('$.pending')));
case '$inspect':
case '$inspect().with':
return transform_inspect_rune(rune, node, context);
}
if (
dev &&
node.callee.type === 'MemberExpression' &&
Domain
Subdomains
Source
Frequently Asked Questions
What does CallExpression() do?
CallExpression() is a function in the svelte codebase, defined in packages/svelte/src/compiler/phases/3-transform/client/visitors/CallExpression.js.
Where is CallExpression() defined?
CallExpression() is defined in packages/svelte/src/compiler/phases/3-transform/client/visitors/CallExpression.js at line 13.
What does CallExpression() call?
CallExpression() calls 6 function(s): evaluate, get, get_rune, is_ignored, should_proxy, transform_inspect_rune.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free