Skip to content
Debug libraryReference

debug.getprotos

Represents inspection of nested function prototypes.

Aliasesgetprotos

Details#

Lists the immediate nested prototypes of a Luau function in one-based order. With active=false (default), entries are opaque prototype handles, not callable functions. With active=true, creates closures for those prototypes; it does not search for existing live closures like debug.getproto(..., true). Captured values are not reconstructed, so do not invoke these closures assuming the parent's upvalues are present. getprotos is an alias.

Signature#

Luau
debug.getprotos(parent: function | number, active: boolean?): {any}

Parameters#

ParameterTypeDescription
parentfunction | numberLuau parent function or positive stack level.
activeoptionalbooleanCreate closures instead of opaque handles; default false.

Returns#

An array of prototype handles or newly created closures.

Examples#

Example

Luau
local chunk = assert(loadstring("return function() return 42 end"))
for index, proto in ipairs(debug.getprotos(chunk)) do
    print(index, type(proto))
end