I'm trying to understand the following function.
void luaV_finishOp (lua_State *L)
The comments say it is to resume an instruction interrupted by a previous yield. In its implementation, there is a switch-case for a varieties of instruction types (ADD, SUB, etc.).
To my very limited understanding, I see only one possible code path being hit, that is, the OP_CALL. Because an execution is always interrupted by a call to coroutine.yield(). How come there are so many handling paths?
I think my understanding is quite limited so I must miss many things here. Just don't know what I missed. Thank you in advance.