Debug

getupvalue

Returns one upvalue from a Lua function or stack level by one-based index.

Syntax

getupvalue(target: function | number, index: number): any
Aliases debug.getupvalue

Arguments

NameTypeDescription
targetfunction | numberLua function or stack level whose upvalue is read.
indexnumberOne-based upvalue index.

Returns

NameTypeDescription
upvalueanyValue stored in the requested upvalue slot.

Description

Returns one upvalue from a Lua function or stack level by one-based index. Invalid stack levels raise "Level out of range", non-Lua functions raise "Lua Function expected", indexes below 1 raise "Upvalue index starts at 1", and indexes past the available upvalues raise "Upvalue index out of range". debug.getupvalue is an alias.

Call it with 2 parameter(s): target, index. The argument table explains which values are required and which ones only refine the behavior.

It returns upvalue (any). Use the returns table to separate successful values from nil results and recoverable errors.

Example

Read one upvalue from a Lua closure or stack level.

local captured = "ready"

local function target()
    return captured
end

print(getupvalue(target, 1))
print(debug.getupvalue(target, 1))