AwaitExpression() — svelte Function Reference
Architecture documentation for the AwaitExpression() function in AwaitExpression.js from the svelte codebase.
Entity Profile
Dependency Diagram
graph TD 8faf0d70_7e56_5e11_3d46_3702b9634650["AwaitExpression()"] c9c24023_1004_2023_0ff3_88c290127328["AwaitExpression.js"] 8faf0d70_7e56_5e11_3d46_3702b9634650 -->|defined in| c9c24023_1004_2023_0ff3_88c290127328 5e732e1e_1b77_e0f7_fe3b_d9981bd8ce48["is_reactive_expression()"] 8faf0d70_7e56_5e11_3d46_3702b9634650 -->|calls| 5e732e1e_1b77_e0f7_fe3b_d9981bd8ce48 cb97c605_896b_4e95_232b_b0e0c881e32e["is_last_evaluated_expression()"] 8faf0d70_7e56_5e11_3d46_3702b9634650 -->|calls| cb97c605_896b_4e95_232b_b0e0c881e32e 0900de7c_eb74_d304_a146_49ce6e132173["experimental_async()"] 8faf0d70_7e56_5e11_3d46_3702b9634650 -->|calls| 0900de7c_eb74_d304_a146_49ce6e132173 0f7e2c73_dc52_8074_75ff_cc7db8f7b1ed["legacy_await_invalid()"] 8faf0d70_7e56_5e11_3d46_3702b9634650 -->|calls| 0f7e2c73_dc52_8074_75ff_cc7db8f7b1ed style 8faf0d70_7e56_5e11_3d46_3702b9634650 fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
packages/svelte/src/compiler/phases/2-analyze/visitors/AwaitExpression.js lines 10–45
export function AwaitExpression(node, context) {
const tla = context.state.ast_type === 'instance' && context.state.function_depth === 1;
// preserve context for awaits that precede other expressions in template or `$derived(...)`
if (
is_reactive_expression(
context.path,
context.state.derived_function_depth === context.state.function_depth
) &&
!is_last_evaluated_expression(context.path, node)
) {
context.state.analysis.pickled_awaits.add(node);
}
let suspend = tla;
if (context.state.expression) {
context.state.expression.has_await = true;
suspend = true;
}
// disallow top-level `await` or `await` in template expressions
// unless a) in runes mode and b) opted into `experimental.async`
if (suspend) {
if (!context.state.options.experimental.async) {
e.experimental_async(node);
}
if (!context.state.analysis.runes) {
e.legacy_await_invalid(node);
}
}
context.next();
}
Domain
Subdomains
Calls
Source
Frequently Asked Questions
What does AwaitExpression() do?
AwaitExpression() is a function in the svelte codebase, defined in packages/svelte/src/compiler/phases/2-analyze/visitors/AwaitExpression.js.
Where is AwaitExpression() defined?
AwaitExpression() is defined in packages/svelte/src/compiler/phases/2-analyze/visitors/AwaitExpression.js at line 10.
What does AwaitExpression() call?
AwaitExpression() calls 4 function(s): experimental_async, is_last_evaluated_expression, is_reactive_expression, legacy_await_invalid.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free