ucode-mod-lua: support prototype lookups and method calls on ucode values
authorJo-Philipp Wich <jo@mein.io>
Sat, 20 Aug 2022 23:32:12 +0000 (01:32 +0200)
committerJo-Philipp Wich <jo@mein.io>
Fri, 26 Aug 2022 08:11:17 +0000 (10:11 +0200)
commit42201e336d53412c63dbfde934786841d7bf29d2
treedecaa3ac1a471acaaea6cea8b67ffa38bb6a6dae
parent7e4c087f868935d1ee42ca515f3be40f91474848
ucode-mod-lua: support prototype lookups and method calls on ucode values

Expose ucode arrays and objects with prototypes as userdata proxy objects
to Lua and extend the userdata metadatable with an __index metamethod to
lookup not found properties in the ucode values prototype chain.

Also extend the __call metamethod implementation to infer method call
status from the activation record in order to invoke ucode functions with
the correct `this` context when called as method from Lua.

Signed-off-by: Jo-Philipp Wich <jo@mein.io>
contrib/package/ucode-mod-lua/src/lua.c