Mono even had AOT compiler with capabilities that are only now landing on Native AOT, and are the underlying architecture for what made Blazor possible in first place.