From e980731dbddb46260d7287373a2cb3a835e30e5a Mon Sep 17 00:00:00 2001 From: daurnimator Date: Wed, 24 May 2017 14:32:35 +1000 Subject: Give userdata objects a class This way their type can be checked via `instanceof` --- src/lobject.js | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'src/lobject.js') diff --git a/src/lobject.js b/src/lobject.js index 8c70985..119e20e 100644 --- a/src/lobject.js +++ b/src/lobject.js @@ -214,6 +214,19 @@ class CClosure { } +class Udata { + + constructor(L, size) { + this.id = L.l_G.id_counter++; + + this.metatable = null; + this.uservalue = new TValue(CT.LUA_TNIL, null); + this.len = size; + this.data = Object.create(null); // ignores size argument + } + +} + /* ** Description of a local variable for function prototypes ** (used for debug information) @@ -630,6 +643,7 @@ module.exports.LUA_TDEADKEY = LUA_TDEADKEY; module.exports.LUA_TPROTO = LUA_TPROTO; module.exports.LocVar = LocVar; module.exports.TValue = TValue; +module.exports.Udata = Udata; module.exports.UTF8BUFFSZ = UTF8BUFFSZ; module.exports.luaO_arith = luaO_arith; module.exports.luaO_chunkid = luaO_chunkid; -- cgit v1.2.3-54-g00ecf