no need to store linked_value if setting

pull/12545/head
Rich Harris 2 years ago
parent 39a9187f7f
commit 2a4ba4dcbb

@ -47,11 +47,14 @@ export function source(v) {
} }
/** /**
* @param {() => any} get_value * @template V
* @param {() => V} get_value
* @returns {(value?: V) => V}
*/ */
export function source_link(get_value) { export function source_link(get_value) {
var was_local = false; var was_local = false;
var local_source = source(undefined); var local_source = source(undefined);
var linked_derived = derived(() => { var linked_derived = derived(() => {
var local_value = get(local_source); var local_value = get(local_source);
var linked_value = get_value(); var linked_value = get_value();
@ -65,14 +68,14 @@ export function source_link(get_value) {
}); });
return function (/** @type {any} */ value) { return function (/** @type {any} */ value) {
var linked_value = get(linked_derived);
if (arguments.length > 0) { if (arguments.length > 0) {
was_local = true; was_local = true;
set(local_source, value); set(local_source, value);
get(linked_derived); get(linked_derived);
return value; return value;
} }
return linked_value;
return get(linked_derived);
}; };
} }

Loading…
Cancel
Save