async-changeset
Rich Harris 7 months ago
parent 06170f58fe
commit 5ddcc3e91c

@ -406,13 +406,6 @@ export class Fork {
* @param {Source} source * @param {Source} source
*/ */
get(source) { get(source) {
// console.log(
// 'fork#get',
// [...this.changeset].map((s) => s.v),
// this.changeset.has(source),
// source.v
// );
if (this.changeset.has(source)) { if (this.changeset.has(source)) {
return source.v; return source.v;
} }

@ -139,8 +139,6 @@ export function async_derived(fn, location) {
internal_set(signal, v); internal_set(signal, v);
} }
active_fork?.changeset.add(signal);
if (DEV && location !== undefined) { if (DEV && location !== undefined) {
recent_async_deriveds.add(signal); recent_async_deriveds.add(signal);

@ -185,7 +185,9 @@ export function internal_set(source, value) {
} }
} }
if (!active_fork && !changeset.has(source)) { if (active_fork !== null) {
active_fork.changeset.add(source);
} else {
changeset.add(source); changeset.add(source);
} }

@ -1060,14 +1060,18 @@ export function get(signal) {
recent_async_deriveds.delete(signal); recent_async_deriveds.delete(signal);
} }
if ((signal.f & DERIVED) === 0) {
if (active_fork) { if (active_fork) {
// console.log('get from fork', (signal.f & DERIVED) !== 0 ? 'derived' : 'source', signal.v);
return active_fork.get(signal); return active_fork.get(signal);
} }
var boundary = active_effect?.b; var boundary = active_effect?.b;
if (boundary) { if (boundary) {
// console.log('get from boundary', (signal.f & DERIVED) !== 0 ? 'derived' : 'source', signal.v);
return boundary.get(signal); return boundary.get(signal);
} }
}
return signal.v; return signal.v;
} }

Loading…
Cancel
Save