is_last_evaluated_expression() — svelte Function Reference
Architecture documentation for the is_last_evaluated_expression() function in AwaitExpression.js from the svelte codebase.
Entity Profile
Dependency Diagram
graph TD cb97c605_896b_4e95_232b_b0e0c881e32e["is_last_evaluated_expression()"] c9c24023_1004_2023_0ff3_88c290127328["AwaitExpression.js"] cb97c605_896b_4e95_232b_b0e0c881e32e -->|defined in| c9c24023_1004_2023_0ff3_88c290127328 8faf0d70_7e56_5e11_3d46_3702b9634650["AwaitExpression()"] 8faf0d70_7e56_5e11_3d46_3702b9634650 -->|calls| cb97c605_896b_4e95_232b_b0e0c881e32e style cb97c605_896b_4e95_232b_b0e0c881e32e fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
packages/svelte/src/compiler/phases/2-analyze/visitors/AwaitExpression.js lines 81–150
function is_last_evaluated_expression(path, node) {
let i = path.length;
while (i--) {
const parent = path[i];
if (parent.type === 'ConstTag') {
// {@const ...} tags are treated as deriveds and its contents should all get the preserve-reactivity treatment
return false;
}
// @ts-expect-error we could probably use a neater/more robust mechanism
if (parent.metadata) {
return true;
}
switch (parent.type) {
case 'ArrayExpression':
if (node !== parent.elements.at(-1)) return false;
break;
case 'AssignmentExpression':
case 'BinaryExpression':
case 'LogicalExpression':
if (node === parent.left) return false;
break;
case 'CallExpression':
case 'NewExpression':
if (node !== parent.arguments.at(-1)) return false;
break;
case 'ConditionalExpression':
if (node === parent.test) return false;
break;
case 'MemberExpression':
if (parent.computed && node === parent.object) return false;
break;
case 'ObjectExpression':
if (node !== parent.properties.at(-1)) return false;
break;
case 'Property':
if (node === parent.key) return false;
break;
case 'SequenceExpression':
if (node !== parent.expressions.at(-1)) return false;
break;
case 'TaggedTemplateExpression':
if (node !== parent.quasi.expressions.at(-1)) return false;
break;
case 'TemplateLiteral':
if (node !== parent.expressions.at(-1)) return false;
break;
case 'VariableDeclarator':
return true;
default:
return false;
}
node = parent;
}
}
Domain
Subdomains
Called By
Source
Frequently Asked Questions
What does is_last_evaluated_expression() do?
is_last_evaluated_expression() is a function in the svelte codebase, defined in packages/svelte/src/compiler/phases/2-analyze/visitors/AwaitExpression.js.
Where is is_last_evaluated_expression() defined?
is_last_evaluated_expression() is defined in packages/svelte/src/compiler/phases/2-analyze/visitors/AwaitExpression.js at line 81.
What calls is_last_evaluated_expression()?
is_last_evaluated_expression() is called by 1 function(s): AwaitExpression.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free