From 650144aa75e47f9f614104b3b7b2ef7979037de7 Mon Sep 17 00:00:00 2001 From: Rich Harris Date: Thu, 26 Jun 2025 16:43:34 -0400 Subject: [PATCH] tidy up --- .../client/visitors/RegularElement.js | 19 +++++++------------ 1 file changed, 7 insertions(+), 12 deletions(-) diff --git a/packages/svelte/src/compiler/phases/3-transform/client/visitors/RegularElement.js b/packages/svelte/src/compiler/phases/3-transform/client/visitors/RegularElement.js index d1348a9e5e..5496a051ac 100644 --- a/packages/svelte/src/compiler/phases/3-transform/client/visitors/RegularElement.js +++ b/packages/svelte/src/compiler/phases/3-transform/client/visitors/RegularElement.js @@ -1,4 +1,4 @@ -/** @import { ArrayExpression, Expression, ExpressionStatement, Identifier, MemberExpression, ObjectExpression } from 'estree' */ +/** @import { ArrayExpression, Expression, ExpressionStatement, Identifier, MemberExpression, ObjectExpression, Property } from 'estree' */ /** @import { AST } from '#compiler' */ /** @import { ComponentClientTransformState, ComponentContext, MemoizedExpression } from '../types' */ /** @import { Scope } from '../../../scope' */ @@ -504,8 +504,9 @@ export function build_style_directives_object( async_expressions = context.state.async_expressions, expressions = context.state.expressions ) { - let normal_properties = []; - let important_properties = []; + const normal = b.object([]); + const important = b.object([]); + let has_call_or_state = false; let has_await = false; @@ -514,21 +515,15 @@ export function build_style_directives_object( d.value === true ? build_getter({ name: d.name, type: 'Identifier' }, context.state) : build_attribute_value(d.value, context).value; - const property = b.init(d.name, expression); - if (d.modifiers.includes('important')) { - important_properties.push(property); - } else { - normal_properties.push(property); - } + const object = d.modifiers.includes('important') ? important : normal; + object.properties.push(b.init(d.name, expression)); has_call_or_state ||= d.metadata.expression.has_call || d.metadata.expression.has_state; has_await ||= d.metadata.expression.has_await; } - const directives = important_properties.length - ? b.array([b.object(normal_properties), b.object(important_properties)]) - : b.object(normal_properties); + const directives = important.properties.length ? b.array([normal, important]) : normal; return has_call_or_state || has_await ? get_expression_id(has_await ? async_expressions : expressions, directives)