public void SetMetatable(int idx) { var val = stack.get(idx); var mtVal = stack.pop(); if (mtVal == null) { LuaValue.setMetatable(val, null, this); } else if (mtVal is LuaTable mtl) { LuaValue.setMetatable(val, mtl, this); } else { throw new Exception("table expected!"); // todo } }