async-fork
Dominic Gannaway 7 months ago
parent a544f25fa2
commit 044475de01

@ -3,6 +3,7 @@
import {
BOUNDARY_EFFECT,
BOUNDARY_SUSPENDED,
DERIVED,
DIRTY,
EFFECT_PRESERVED,
EFFECT_RAN,
@ -34,7 +35,7 @@ import { DEV } from 'esm-env';
import { from_async_derived, set_from_async_derived } from '../../reactivity/deriveds.js';
import { raf } from '../../timing.js';
import { loop } from '../../loop.js';
import { mark_reactions } from '../../reactivity/sources.js';
import { internal_set, mark_reactions } from '../../reactivity/sources.js';
const ASYNC_INCREMENT = Symbol();
const ASYNC_DECREMENT = Symbol();
@ -165,9 +166,16 @@ export function boundary(node, props, children) {
// @ts-ignore
var forks = boundary.fn.forks;
for (var [signal, entry] of forks) {
if (signal.v !== entry.v) {
mark_reactions(signal, DIRTY);
if ((signal.f & DERIVED) === 0) {
var val = signal.v;
signal.v = entry.v;
internal_set(signal, val);
} else {
mark_reactions(signal, DIRTY);
}
}
}
forks.clear();

@ -32,7 +32,11 @@ export default test({
await Promise.resolve();
await Promise.resolve();
await Promise.resolve();
await Promise.resolve();
await Promise.resolve();
await Promise.resolve();
await tick();
flushSync();
assert.htmlEqual(target.innerHTML, '<p>84</p>');
d = deferred();

Loading…
Cancel
Save