Skip to content

Commit 966f3cc

Browse files
committed
remove function handling, tweak failing test
1 parent 3d967b6 commit 966f3cc

File tree

6 files changed

+36
-283
lines changed

6 files changed

+36
-283
lines changed

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -685,7 +685,7 @@ function build_element_special_value_attribute(element, node_id, attribute, cont
685685
: value
686686
);
687687

688-
const evaluated = context.state.scope.evaluate(value, new Set(), context.state.scopes);
688+
const evaluated = context.state.scope.evaluate(value);
689689
const assignment = b.assignment('=', b.member(node_id, '__value'), value);
690690

691691
const inner_assignment = b.assignment(

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

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
/** @import { ComponentClientTransformState, Context } from '../../types' */
44
import { walk } from 'zimmerframe';
55
import { object } from '../../../../../utils/ast.js';
6-
import * as b from '#compiler/builders';
6+
import * as b from '../../../../../utils/builders.js';
77
import { sanitize_template_string } from '../../../../../utils/sanitize_template_string.js';
88
import { regex_is_valid_identifier } from '../../../../patterns.js';
99
import is_reference from 'is-reference';
@@ -64,9 +64,12 @@ export function build_template_chunk(
6464
node.expression.name !== 'undefined' ||
6565
state.scope.get('undefined')
6666
) {
67-
let value = /** @type {Expression} */ (visit(node.expression, state));
67+
let value = memoize(
68+
/** @type {Expression} */ (visit(node.expression, state)),
69+
node.metadata.expression
70+
);
6871

69-
const evaluated = state.scope.evaluate(value, new Set(), state.scopes);
72+
const evaluated = state.scope.evaluate(value);
7073

7174
has_state ||= node.metadata.expression.has_state && !evaluated.is_known;
7275

@@ -95,7 +98,6 @@ export function build_template_chunk(
9598
if (evaluated.is_known) {
9699
quasi.value.cooked += evaluated.value + '';
97100
} else {
98-
value = memoize(value, node.metadata.expression);
99101
if (!evaluated.is_defined) {
100102
// add `?? ''` where necessary
101103
value = b.logical('??', value, b.literal(''));

packages/svelte/src/compiler/phases/3-transform/server/visitors/shared/utils.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ export function process_children(nodes, { visit, state }) {
4545
quasi.value.cooked +=
4646
node.type === 'Comment' ? `<!--${node.data}-->` : escape_html(node.data);
4747
} else {
48-
const evaluated = state.scope.evaluate(node.expression, new Set(), state.scopes);
48+
const evaluated = state.scope.evaluate(node.expression);
4949

5050
if (evaluated.is_known) {
5151
quasi.value.cooked += escape_html((evaluated.value ?? '') + '');

0 commit comments

Comments
 (0)