Coroutine::MoveNext causes the return value (a bool) to be boxed, which causes an allocation.

Reproduction Steps:

1. Run the attached project

2. Open the Profiler and sort by GC Alloc

3. Observe that FlagEndOfFrame is allocated 17B of garbage every frame

Expected Result:

It should be possible to run a coroutine without generating any garbage at all.