Home / Function/ is_last_evaluated_expression() — svelte Function Reference

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

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