| 
						
						
						
					 | 
					 | 
					@ -1,6 +1,6 @@
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					/** @import { Expression, ExpressionStatement, Identifier, MemberExpression, SequenceExpression, Statement, Super } from 'estree' */
 | 
					 | 
					 | 
					 | 
					/** @import { Expression, ExpressionStatement, Identifier, MemberExpression, SequenceExpression, Super } from 'estree' */
 | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					/** @import { AST, ExpressionMetadata } from '#compiler' */
 | 
					 | 
					 | 
					 | 
					/** @import { AST, ExpressionMetadata } from '#compiler' */
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					/** @import { ComponentClientTransformState } from '../../types' */
 | 
					 | 
					 | 
					 | 
					/** @import { ComponentClientTransformState, MemoizedExpression } from '../../types' */
 | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					import { walk } from 'zimmerframe';
 | 
					 | 
					 | 
					 | 
					import { walk } from 'zimmerframe';
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					import { object } from '../../../../../utils/ast.js';
 | 
					 | 
					 | 
					 | 
					import { object } from '../../../../../utils/ast.js';
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					import * as b from '../../../../../utils/builders.js';
 | 
					 | 
					 | 
					 | 
					import * as b from '../../../../../utils/builders.js';
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
					 | 
					@ -22,19 +22,18 @@ export function memoize_expression(state, value) {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					/**
 | 
					 | 
					 | 
					 | 
					/**
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 *
 | 
					 | 
					 | 
					 | 
					 *
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 * @param {ComponentClientTransformState} state
 | 
					 | 
					 | 
					 | 
					 * @param {MemoizedExpression[]} expressions
 | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 * @param {Expression} expression
 | 
					 | 
					 | 
					 | 
					 * @param {Expression} expression
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 * @param {boolean} is_async
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 */
 | 
					 | 
					 | 
					 | 
					 */
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					export function get_expression_id(state, expression, is_async) {
 | 
					 | 
					 | 
					 | 
					export function get_expression_id(expressions, expression) {
 | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						for (let i = 0; i < state.expressions.length; i += 1) {
 | 
					 | 
					 | 
					 | 
						for (let i = 0; i < expressions.length; i += 1) {
 | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							if (compare_expressions(state.expressions[i].expression, expression)) {
 | 
					 | 
					 | 
					 | 
							if (compare_expressions(expressions[i].expression, expression)) {
 | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
								return state.expressions[i].id;
 | 
					 | 
					 | 
					 | 
								return expressions[i].id;
 | 
				
			
			
				
				
			
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							}
 | 
					 | 
					 | 
					 | 
							}
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						}
 | 
					 | 
					 | 
					 | 
						}
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						const id = b.id(''); // filled in later
 | 
					 | 
					 | 
					 | 
						const id = b.id('~'); // filled in later
 | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						state.expressions.push({ id, expression, is_async });
 | 
					 | 
					 | 
					 | 
						expressions.push({ id, expression });
 | 
				
			
			
				
				
			
		
	
		
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						return id;
 | 
					 | 
					 | 
					 | 
						return id;
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					}
 | 
					 | 
					 | 
					 | 
					}
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
					 | 
					@ -92,7 +91,7 @@ export function build_template_chunk(
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						state,
 | 
					 | 
					 | 
					 | 
						state,
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						memoize = (value, metadata) =>
 | 
					 | 
					 | 
					 | 
						memoize = (value, metadata) =>
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							metadata.has_call || metadata.is_async
 | 
					 | 
					 | 
					 | 
							metadata.has_call || metadata.is_async
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
								? get_expression_id(state, value, metadata.is_async)
 | 
					 | 
					 | 
					 | 
								? get_expression_id(metadata.is_async ? state.async_expressions : state.expressions, value)
 | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
								: value
 | 
					 | 
					 | 
					 | 
								: value
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					) {
 | 
					 | 
					 | 
					 | 
					) {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						/** @type {Expression[]} */
 | 
					 | 
					 | 
					 | 
						/** @type {Expression[]} */
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
					 | 
					@ -163,8 +162,8 @@ export function build_template_chunk(
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 * @param {ComponentClientTransformState} state
 | 
					 | 
					 | 
					 | 
					 * @param {ComponentClientTransformState} state
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 */
 | 
					 | 
					 | 
					 | 
					 */
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					export function build_render_statement(state) {
 | 
					 | 
					 | 
					 | 
					export function build_render_statement(state) {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						const sync = state.expressions.filter(({ is_async }) => !is_async);
 | 
					 | 
					 | 
					 | 
						const sync = state.expressions;
 | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						const async = state.expressions.filter(({ is_async }) => is_async);
 | 
					 | 
					 | 
					 | 
						const async = state.async_expressions;
 | 
				
			
			
				
				
			
		
	
		
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						const all = [...sync, ...async];
 | 
					 | 
					 | 
					 | 
						const all = [...sync, ...async];
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
						
					 | 
					 | 
					
 
 |