return is_async from build_template_chunk

aaa
Rich Harris 8 months ago
parent 9348259879
commit 39ed111367

@ -172,18 +172,18 @@ export function build_class_directives(
* @param {AST.Attribute['value']} value * @param {AST.Attribute['value']} value
* @param {ComponentContext} context * @param {ComponentContext} context
* @param {(value: Expression, is_async: boolean) => Expression} memoize * @param {(value: Expression, is_async: boolean) => Expression} memoize
* @returns {{ value: Expression, has_state: boolean }} * @returns {{ value: Expression, has_state: boolean, is_async: boolean }}
*/ */
export function build_attribute_value(value, context, memoize = (value) => value) { export function build_attribute_value(value, context, memoize = (value) => value) {
if (value === true) { if (value === true) {
return { value: b.literal(true), has_state: false }; return { value: b.literal(true), has_state: false, is_async: false };
} }
if (!Array.isArray(value) || value.length === 1) { if (!Array.isArray(value) || value.length === 1) {
const chunk = Array.isArray(value) ? value[0] : value; const chunk = Array.isArray(value) ? value[0] : value;
if (chunk.type === 'Text') { if (chunk.type === 'Text') {
return { value: b.literal(chunk.data), has_state: false }; return { value: b.literal(chunk.data), has_state: false, is_async: false };
} }
let expression = /** @type {Expression} */ (context.visit(chunk.expression)); let expression = /** @type {Expression} */ (context.visit(chunk.expression));
@ -193,7 +193,8 @@ export function build_attribute_value(value, context, memoize = (value) => value
chunk.metadata.expression.has_call || chunk.metadata.expression.is_async chunk.metadata.expression.has_call || chunk.metadata.expression.is_async
? memoize(expression, chunk.metadata.expression.is_async) ? memoize(expression, chunk.metadata.expression.is_async)
: expression, : expression,
has_state: chunk.metadata.expression.has_state has_state: chunk.metadata.expression.has_state,
is_async: chunk.metadata.expression.is_async
}; };
} }

Loading…
Cancel
Save