static void resume ( lua_State * L , void * ud ) {
 StkId firstArg = cast ( StkId , ud ) ;
 CallInfo * ci = L -> ci ;
 if ( L -> status == 0 ) {
 lua_assert ( ci == L -> base_ci && firstArg > L -> base ) ;
 if ( luaD_precall ( L , firstArg - 1 , LUA_MULTRET ) != PCRLUA ) return ;
 }
 else {
 lua_assert ( L -> status == LUA_YIELD ) ;
 L -> status = 0 ;
 if ( ! f_isLua ( ci ) ) {
 lua_assert ( GET_OPCODE ( * ( ( ci - 1 ) -> savedpc - 1 ) ) == OP_CALL || GET_OPCODE ( * ( ( ci - 1 ) -> savedpc - 1 ) ) == OP_TAILCALL ) ;
 if ( luaD_poscall ( L , firstArg ) ) L -> top = L -> ci -> top ;
 }
 else L -> base = L -> ci -> base ;
 }
 luaV_execute ( L , cast_int ( L -> ci - L -> base_ci ) ) ;
 }
static void resume ( lua_State * L , void * ud ) {
 StkId firstArg = cast ( StkId , ud ) ;
 CallInfo * ci = L -> ci ;
 if ( L -> status == 0 ) {
 lua_assert ( ci == L -> base_ci && firstArg > L -> base ) ;
 if ( luaD_precall ( L , firstArg - 1 , LUA_MULTRET ) != PCRLUA ) return ;
 }
 else {
 lua_assert ( L -> status == LUA_YIELD ) ;
 L -> status = 0 ;
 if ( ! f_isLua ( ci ) ) {
 lua_assert ( GET_OPCODE ( * ( ( ci - 1 ) -> savedpc - 1 ) ) == OP_CALL || GET_OPCODE ( * ( ( ci - 1 ) -> savedpc - 1 ) ) == OP_TAILCALL ) ;
 if ( luaD_poscall ( L , firstArg ) ) L -> top = L -> ci -> top ;
 }
 else L -> base = L -> ci -> base ;
 }
 luaV_execute ( L , cast_int ( L -> ci - L -> base_ci ) ) ;
 }