alternative fix for #12951

pull/12952/head
Rich Harris 2 years ago
parent f27e1882fc
commit c24cecf051

@ -0,0 +1,5 @@
---
'svelte': patch
---
fix: ensure `$store` reads are properly transformed

@ -42,11 +42,11 @@ export function Program(_, context) {
for (const [name, binding] of context.state.scope.declarations) {
if (binding.kind === 'store_sub') {
const store = /** @type {Expression} */ (context.visit(b.id(name.slice(1))));
const get_store = () => /** @type {Expression} */ (context.visit(b.id(name.slice(1))));
context.state.transform[name] = {
read: b.call,
assign: (_, value) => b.call('$.store_set', store, value),
assign: (_, value) => b.call('$.store_set', get_store(), value),
mutate: (node, mutation) => {
// We need to untrack the store read, for consistency with Svelte 4
const untracked = b.call('$.untrack', node);
@ -70,7 +70,7 @@ export function Program(_, context) {
return b.call(
'$.store_mutate',
store,
get_store(),
b.assignment(
mutation.operator,
/** @type {MemberExpression} */ (

Loading…
Cancel
Save