coroutine: enhance evaluating macros

svn path=; revision=84708