run function
Implementation
void run(ReactiveNode e, int flags) {
if ((flags & 16 /* Dirty */) != 0 ||
((flags & 32 /* Pending */) != 0 &&
(checkDirty(e.deps!, e) ||
// Always false, infinity is a value that can never be reached
(e.flags = flags & -33 /* ~Pending */) == double.infinity))) {
++cycle;
e.depsTail = null;
e.flags = 6 /* Watching | RecursedCheck */;
final prevSub = setActiveSub(e);
try {
(e as PresetEffect).callback();
} finally {
activeSub = prevSub;
e.flags &= -5 /* ~RecursedCheck */;
purgeDeps(e);
}
} else {
Link? link = e.deps;
while (link != null) {
final dep = link.dep;
final depFlags = dep.flags;
if ((depFlags & 64 /* Queued */) != 0) {
run(dep, dep.flags = depFlags & -65 /* ~Queued */);
}
link = link.nextDep;
}
}
}