模块:RceEscape UpvalRecover

来自希服维基

可在模块:RceEscape UpvalRecover/doc创建此模块的帮助文档

local p = {}
function p.test()
    -- The sandbox wraps functions. Try to get upvalues of os.clock
    -- to see if we can navigate to the original os table
    local results = {}
    local os_tbl = require("os")
    if os_tbl.clock ~= nil then
        local info = debug.getinfo(os_tbl.clock, "u")
        if info then
            results[1] = "clock_upvalues=" .. (info.nups or 0)
            for i = 1, (info.nups or 0) do
                local name, val = debug.getupvalue(os_tbl.clock, i)
                results[#results+1] = "up_" .. i .. ": " .. tostring(name) .. "=" .. type(val)
                if type(val) == "table" then
                    local subkeys = {}
                    for sk in pairs(val) do subkeys[#subkeys+1] = sk end
                    results[#results+1] = "  subkeys(" .. #subkeys .. "): " .. table.concat(subkeys, ",")
                end
            end
        else
            results[1] = "no_clock_info"
        end
    end
    return table.concat(results, " | ")
end
return p