runDeferredStaticInitializers method
void
runDeferredStaticInitializers()
Execute and clear all pending static-field initializers. Intended to be called by the top-level runner after every class declaration has been visited, so that forward-referenced class constructors are available.
Implementation
void runDeferredStaticInitializers() {
// Take a snapshot: running an initializer could transitively trigger
// another deferred block to enqueue (unlikely but possible), so we loop.
while (_pendingStaticInitializers.isNotEmpty) {
final batch = List<void Function()>.from(_pendingStaticInitializers);
_pendingStaticInitializers.clear();
for (final init in batch) {
init();
}
}
}