setSignal<T> function

T setSignal<T>(
  1. Signal<T> signal,
  2. T newValue
)

Set a signal's value and trigger updates

Implementation

@pragma('vm:prefer-inline')
@pragma('wasm:prefer-inline')
@pragma('dart2js:prefer-inline')
T setSignal<T>(Signal<T> signal, T newValue) {
  if (signal.pendingValue != (signal.pendingValue = newValue)) {
    signal.flags = (ReactiveFlags.mutable | ReactiveFlags.dirty);

    final subs = signal.subs;
    if (subs != null) {
      propagate(subs);
      if (batchDepth == 0) {
        flushEffects();
      }
    }

    JoltDebug.set(signal);
  }
  return newValue;
}