Skip to content

Commit 92a4ab2

Browse files
committed
fix: correctly transform $derived private fields on server
1 parent 30e2b23 commit 92a4ab2

File tree

3 files changed

+8
-6
lines changed

3 files changed

+8
-6
lines changed

.changeset/seven-flies-drop.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
'svelte': patch
3+
---
4+
5+
fix: correctly transform `$derived` private fields on server

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

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,7 @@ import * as b from '#compiler/builders';
77
* @param {Context} context
88
*/
99
export function MemberExpression(node, context) {
10-
if (
11-
context.state.analysis.runes &&
12-
node.object.type === 'ThisExpression' &&
13-
node.property.type === 'PrivateIdentifier'
14-
) {
10+
if (context.state.analysis.runes && node.property.type === 'PrivateIdentifier') {
1511
const field = context.state.state_fields?.get(`#${node.property.name}`);
1612

1713
if (field?.type === '$derived' || field?.type === '$derived.by') {

packages/svelte/tests/runtime-runes/samples/class-state-derived-private/main.svelte

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,8 @@
99
}
1010
1111
get embiggened1() {
12-
return this.#doubled;
12+
const self = this;
13+
return self.#doubled;
1314
}
1415
1516
get embiggened2() {

0 commit comments

Comments
 (0)