Skip to content

Commit ec91cac

Browse files
authored
init (#15628)
1 parent 5d0eb27 commit ec91cac

File tree

2 files changed

+16
-24
lines changed

2 files changed

+16
-24
lines changed

.changeset/pink-lamps-leave.md

+5
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
'svelte': patch
3+
---
4+
5+
fix: add setters to `$derived` class properties

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

+11-24
Original file line numberDiff line numberDiff line change
@@ -142,30 +142,17 @@ export function ClassBody(node, context) {
142142
// get foo() { return this.#foo; }
143143
body.push(b.method('get', definition.key, [], [b.return(b.call('$.get', member))]));
144144

145-
if (field.kind === 'state' || field.kind === 'raw_state') {
146-
// set foo(value) { this.#foo = value; }
147-
const value = b.id('value');
148-
149-
body.push(
150-
b.method(
151-
'set',
152-
definition.key,
153-
[value],
154-
[b.stmt(b.call('$.set', member, value, field.kind === 'state' && b.true))]
155-
)
156-
);
157-
}
158-
159-
if (dev && (field.kind === 'derived' || field.kind === 'derived_by')) {
160-
body.push(
161-
b.method(
162-
'set',
163-
definition.key,
164-
[b.id('_')],
165-
[b.throw_error(`Cannot update a derived property ('${name}')`)]
166-
)
167-
);
168-
}
145+
// set foo(value) { this.#foo = value; }
146+
const val = b.id('value');
147+
148+
body.push(
149+
b.method(
150+
'set',
151+
definition.key,
152+
[val],
153+
[b.stmt(b.call('$.set', member, val, field.kind === 'state' && b.true))]
154+
)
155+
);
169156
}
170157
continue;
171158
}

0 commit comments

Comments
 (0)