Debug libraryReference
debug.getprotos
Represents inspection of nested function prototypes.
Aliases
getprotosDetails#
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#
debug.getprotos(parent: function | number, active: boolean?): {any}Parameters#
| Parameter | Type | Description |
|---|---|---|
parent | function | number | Luau parent function or positive stack level. |
activeoptional | boolean | Create closures instead of opaque handles; default false. |
Returns#
An array of prototype handles or newly created closures.
Examples#
Example
local chunk = assert(loadstring("return function() return 42 end"))
for index, proto in ipairs(debug.getprotos(chunk)) do
print(index, type(proto))
end