diff --git a/src/coreclr/vm/reflectioninvocation.cpp b/src/coreclr/vm/reflectioninvocation.cpp index 461dbf1a4a1d01..ed82fba96fb8c4 100644 --- a/src/coreclr/vm/reflectioninvocation.cpp +++ b/src/coreclr/vm/reflectioninvocation.cpp @@ -1283,15 +1283,22 @@ static void PrepareMethodHelper(MethodDesc * pMD) pMD->EnsureActive(); - if (pMD->ShouldCallPrestub()) - pMD->DoPrestub(NULL); - if (pMD->IsWrapperStub()) { + if (pMD->ShouldCallPrestub()) + pMD->DoPrestub(NULL); pMD = pMD->GetWrappedMethodDesc(); + } + + if (pMD->IsAsyncThunkMethod()) + { if (pMD->ShouldCallPrestub()) pMD->DoPrestub(NULL); + pMD = pMD->GetAsyncVariant(); } + + if (pMD->ShouldCallPrestub()) + pMD->DoPrestub(NULL); } // This method triggers a given method to be jitted. CoreCLR implementation of this method triggers jiting of the given method only.