Skip to content

Commit 8c934ff

Browse files
committed
use $$props directly in runes mode
1 parent 4174744 commit 8c934ff

File tree

2 files changed

+18
-12
lines changed

2 files changed

+18
-12
lines changed

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

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -73,9 +73,8 @@ export function serialize_get_binding(node, state) {
7373
}
7474

7575
if (
76-
state.analysis.runes &&
7776
!state.analysis.accessors &&
78-
!binding.reassigned &&
77+
!(state.analysis.runes ? binding.reassigned : binding.mutated) &&
7978
!binding.initial
8079
) {
8180
return b.member(b.id('$$props'), node);

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

Lines changed: 17 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -67,17 +67,24 @@ export const javascript_visitors_legacy = {
6767
state.scope.get(declarator.id.name)
6868
);
6969

70-
declarations.push(
71-
b.declarator(
72-
declarator.id,
73-
get_props_method(
74-
binding,
75-
state,
76-
binding.prop_alias ?? declarator.id.name,
77-
declarator.init && /** @type {import('estree').Expression} */ (visit(declarator.init))
70+
if (
71+
state.analysis.accessors ||
72+
(state.analysis.immutable ? binding.reassigned : binding.mutated) ||
73+
declarator.init
74+
) {
75+
declarations.push(
76+
b.declarator(
77+
declarator.id,
78+
get_props_method(
79+
binding,
80+
state,
81+
binding.prop_alias ?? declarator.id.name,
82+
declarator.init &&
83+
/** @type {import('estree').Expression} */ (visit(declarator.init))
84+
)
7885
)
79-
)
80-
);
86+
);
87+
}
8188

8289
continue;
8390
}

0 commit comments

Comments
 (0)