private LuaTable ConvertToTable(int index) { var table = new LuaTable(); var tempIndex = index < 0 ? index - 1 : index; CApi.lua_pushnil(lua_State); while (CApi.lua_next(lua_State, tempIndex) != 0) { try { table.Add(LuaObjToCLRObj(-2), LuaObjToCLRObj(-1)); } catch (LuaInvalidArgumentException) { } CApi.lua_settop(lua_State, -2); } return(table); }