pull/12614/head
Rich Harris 2 years ago
parent 8d3b17db6e
commit 497f639f4b

@ -296,24 +296,26 @@ export function serialize_set_binding(node, context, fallback) {
return fallback();
}
const is_store = is_store_name(left.name);
const left_name = is_store ? left.name.slice(1) : left.name;
const binding = state.scope.get(left_name);
if (!is_store_name(left.name)) {
return fallback();
}
const name = left.name.slice(1);
if (!binding || !is_store) {
if (!state.scope.get(name)) {
// TODO error if it's a computed (or rest prop)? or does that already happen elsewhere?
return fallback();
}
if (left === node.left) {
return b.call('$.store_set', b.id(left_name), /** @type {Expression} */ (visit(node.right)));
return b.call('$.store_set', b.id(name), /** @type {Expression} */ (visit(node.right)));
}
return b.call(
'$.mutate_store',
b.assignment('??=', b.id('$$store_subs'), b.object([])),
b.literal(left.name),
b.id(left_name),
b.id(name),
b.assignment(
node.operator,
/** @type {Pattern} */ (visit(node.left)),

Loading…
Cancel
Save