incremental-batches
Rich Harris 7 days ago
parent 9b34d8ff76
commit 6914710977

@ -42,7 +42,8 @@ import {
legacy_updates,
set_cv,
get_cv,
active_batch
active_batch,
current_batch
} from './batch.js';
import { proxy } from '../proxy.js';
import { execute_derived } from './deriveds.js';
@ -334,21 +335,19 @@ export function mark_reactions(signal, wv, updated_during_traversal) {
continue;
}
// TODO ideally this would work, but I think we need to `apply()` before `mark_reactions`.
// Or pass `batch` in as an argument?
// if (wv <= get_cv(reaction)) continue;
if ((flags & DERIVED) !== 0) {
var derived = /** @type {Derived} */ (reaction);
if (wv > get_cv(derived)) {
current_batch?.current?.delete(derived); // TODO would be nice if `batch` was passed in and we weren't doing this
active_batch?.values?.delete(derived);
derived.f &= ~CLEAN;
if ((flags & WAS_MARKED) === 0) {
// Only connected deriveds can be reliably unmarked right away
if (flags & CONNECTED) {
reaction.f |= WAS_MARKED;
}
mark_reactions(derived, wv, updated_during_traversal);
}
mark_reactions(derived, wv, updated_during_traversal);
}
} else {
var effect = /** @type {Effect} */ (reaction);

Loading…
Cancel
Save