Testing doing away with the NRRunObjProc routine, which looks like a
useless extra bounce on the NRE trampoline.

Normal testing has no problem with it, but debug-enabled testing
triggers an assert failure.

Either it would be good to have a normal test that fails in the conditions
of the assert failure, or it would be good to discover the assert is
asserting something not actually required, and then make the purge.
Push out a trial patch for more eyes to see.
merge trunk
Don't use automatic storage to hold the invocation words of oo::define.
That practice doesn't agree with NRE execution.
Don't allocate memory until you know you're going to use it and arrange for
it to be freed.  Leak!
Tidy the code and add a test.
[8ff0cb9fe1] Make Tcl_NREvalObj() (and friends) behave as documented, by
only scheduling evaluation and not doing any of it until the caller routine
returns.  This fixes some serious errors in [coroutine] too.