|  |  | @ -77,12 +77,11 @@ export function process_children(nodes, { visit, state }) { | 
			
		
	
		
		
			
				
					
					|  |  |  | 	} |  |  |  | 	} | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  | 	for (const node of nodes) { |  |  |  | 	for (const node of nodes) { | 
			
		
	
		
		
			
				
					
					|  |  |  | 		if (node.type === 'ExpressionTag' && node.metadata.expression.has_await) { |  |  |  | 		if (node.type === 'ExpressionTag' && node.metadata.expression.is_async()) { | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  | 			flush(); |  |  |  | 			flush(); | 
			
		
	
		
		
			
				
					
					|  |  |  | 			const visited = /** @type {Expression} */ (visit(node.expression)); |  |  |  | 
 | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | 			state.template.push( |  |  |  | 			const expression = /** @type {Expression} */ (visit(node.expression)); | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | 				b.stmt(b.call('$$renderer.push', b.thunk(b.call('$.escape', visited), true))) |  |  |  | 			state.template.push(create_push(b.call('$.escape', expression), node.metadata.expression)); | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | 			); |  |  |  |  | 
			
		
	
		
		
	
		
		
	
		
		
	
		
		
			
				
					
					|  |  |  | 		} else if (node.type === 'Text' || node.type === 'Comment' || node.type === 'ExpressionTag') { |  |  |  | 		} else if (node.type === 'Text' || node.type === 'Comment' || node.type === 'ExpressionTag') { | 
			
		
	
		
		
			
				
					
					|  |  |  | 			sequence.push(node); |  |  |  | 			sequence.push(node); | 
			
		
	
		
		
			
				
					
					|  |  |  | 		} else { |  |  |  | 		} else { | 
			
		
	
	
		
		
			
				
					|  |  | @ -277,26 +276,33 @@ export function create_child_block(body, async) { | 
			
		
	
		
		
			
				
					
					|  |  |  |  * @param {BlockStatement | Expression} body |  |  |  |  * @param {BlockStatement | Expression} body | 
			
		
	
		
		
			
				
					
					|  |  |  |  * @param {ArrayExpression} blockers |  |  |  |  * @param {ArrayExpression} blockers | 
			
		
	
		
		
			
				
					
					|  |  |  |  * @param {boolean} has_await |  |  |  |  * @param {boolean} has_await | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |  * @param {boolean} markers | 
			
		
	
		
		
			
				
					
					|  |  |  |  */ |  |  |  |  */ | 
			
		
	
		
		
			
				
					
					|  |  |  | export function create_async_block(body, blockers = b.array([]), has_await = true) { |  |  |  | export function create_async_block(body, blockers = b.array([]), has_await = true, markers = true) { | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  | 	return b.stmt( |  |  |  | 	return b.stmt( | 
			
		
	
		
		
			
				
					
					|  |  |  | 		b.call('$$renderer.async', blockers, b.arrow([b.id('$$renderer')], body, has_await)) |  |  |  | 		b.call( | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 			'$$renderer.async', | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 			blockers, | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 			b.arrow([b.id('$$renderer')], body, has_await), | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 			markers && b.true | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 		) | 
			
		
	
		
		
			
				
					
					|  |  |  | 	); |  |  |  | 	); | 
			
		
	
		
		
			
				
					
					|  |  |  | } |  |  |  | } | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  | /** |  |  |  | /** | 
			
		
	
		
		
			
				
					
					|  |  |  |  * @param {Expression} expression |  |  |  |  * @param {Expression} expression | 
			
		
	
		
		
			
				
					
					|  |  |  |  * @param {ExpressionMetadata} metadata |  |  |  |  * @param {ExpressionMetadata} metadata | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |  * @param {boolean} markers | 
			
		
	
		
		
			
				
					
					|  |  |  |  * @returns {Expression | Statement} |  |  |  |  * @returns {Expression | Statement} | 
			
		
	
		
		
			
				
					
					|  |  |  |  */ |  |  |  |  */ | 
			
		
	
		
		
			
				
					
					|  |  |  | export function create_push(expression, metadata) { |  |  |  | export function create_push(expression, metadata, markers = false) { | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  | 	if (metadata.is_async()) { |  |  |  | 	if (metadata.is_async()) { | 
			
		
	
		
		
			
				
					
					|  |  |  | 		let statement = b.stmt(b.call('$$renderer.push', b.thunk(expression, metadata.has_await))); |  |  |  | 		let statement = b.stmt(b.call('$$renderer.push', b.thunk(expression, metadata.has_await))); | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  | 		const blockers = metadata.blockers(); |  |  |  | 		const blockers = metadata.blockers(); | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  | 		if (blockers.elements.length > 0) { |  |  |  | 		if (blockers.elements.length > 0) { | 
			
		
	
		
		
			
				
					
					|  |  |  | 			statement = create_async_block(b.block([statement]), blockers, false); |  |  |  | 			statement = create_async_block(b.block([statement]), blockers, false, markers); | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  | 		} |  |  |  | 		} | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  | 		return statement; |  |  |  | 		return statement; | 
			
		
	
	
		
		
			
				
					|  |  | 
 |