Skip to content

Commit ad95a09

Browse files
committed
chore: accept single node in is_inlinable_expression
1 parent 3a45986 commit ad95a09

File tree

3 files changed

+6
-11
lines changed

3 files changed

+6
-11
lines changed

packages/svelte/src/compiler/phases/3-transform/client/utils.js

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -328,10 +328,11 @@ export function can_inline_variable(binding) {
328328
}
329329

330330
/**
331-
* @param {(AST.Text | AST.ExpressionTag)[]} nodes
331+
* @param {(AST.Text | AST.ExpressionTag) | (AST.Text | AST.ExpressionTag)[]} node_or_nodes
332332
* @param {import('./types.js').ComponentClientTransformState} state
333333
*/
334-
export function is_inlinable_expression(nodes, state) {
334+
export function is_inlinable_expression(node_or_nodes, state) {
335+
let nodes = Array.isArray(node_or_nodes) ? node_or_nodes : [node_or_nodes];
335336
let has_expression_tag = false;
336337
for (let value of nodes) {
337338
if (value.type === 'ExpressionTag') {

packages/svelte/src/compiler/phases/3-transform/client/visitors/RegularElement.js

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -589,10 +589,7 @@ function build_element_attribute_update_assignment(element, node_id, attribute,
589589
const inlinable_expression =
590590
attribute.value === true
591591
? false // not an expression
592-
: is_inlinable_expression(
593-
Array.isArray(attribute.value) ? attribute.value : [attribute.value],
594-
context.state
595-
);
592+
: is_inlinable_expression(attribute.value, context.state);
596593
if (attribute.metadata.expression.has_state) {
597594
if (has_call) {
598595
state.init.push(build_update(update));

packages/svelte/src/compiler/phases/3-transform/client/visitors/shared/fragment.js

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
/** @import { ComponentContext } from '../../types' */
44
import { is_event_attribute, is_text_attribute } from '../../../../../utils/ast.js';
55
import * as b from '../../../../../utils/builders.js';
6-
import { can_inline_variable, is_inlinable_expression } from '../../utils.js';
6+
import { is_inlinable_expression } from '../../utils.js';
77
import { build_template_literal, build_update } from './utils.js';
88

99
/**
@@ -161,10 +161,7 @@ function is_static_element(node, state) {
161161
// the template so if it's not inlinable we can return false but if it is inlinable (or a text)
162162
// attribute we keep count of the inlinable attributes so that if all the attributes are inlinable
163163
// we deem the node as static
164-
!is_inlinable_expression(
165-
Array.isArray(attribute.value) ? attribute.value : [attribute.value],
166-
state
167-
)
164+
!is_inlinable_expression(attribute.value, state)
168165
) {
169166
return false;
170167
}

0 commit comments

Comments
 (0)