notifyEffect function

  1. @override
void notifyEffect(
  1. JEffect e
)

Notify a subscriber about changes

Implementation

@override
@pragma('vm:prefer-inline')
@pragma('wasm:prefer-inline')
@pragma('dart2js:prefer-inline')
void notifyEffect(JEffect e) {
  JEffect? effect = e;
  int insertIndex = queuedLength;
  int firstInsertedIndex = insertIndex;

  do {
    effect!.flags &= ~(ReactiveFlags.watching);

    // queued[insertIndex++] = effect;
    _queueSet(insertIndex++, effect as EffectBase?);
    effect = effect.subs?.sub as JEffect?;
    if (effect == null || effect.flags & (ReactiveFlags.watching) == 0) {
      break;
    }
  } while (true);

  queuedLength = insertIndex;

  while (firstInsertedIndex < --insertIndex) {
    final left = queued[firstInsertedIndex];
    // queued[firstInsertedIndex++] = queued[insertIndex];
    _queueSet(firstInsertedIndex++, queued[insertIndex]);
    queued[insertIndex] = left;
  }
}