const { LuaFactory } = require('wasmoon'); const main = async () => { const luaFactory = new LuaFactory(); const lua = await luaFactory.createEngine({ enableProxy: false }); lua.global.set("data", { a: 1, b: 2 }); await lua.doString("print(11, data.a)").catch(console.error); await lua.doString("print(12, pairs(data))").catch(console.error); lua.global.set("getData", () => ({ a: 1, b: 2 })); await lua.doString("data = getData()"); await lua.doString("print(21, data.a)").catch(console.error); await lua.doString("print(22, pairs(data))").catch(console.error); lua.global.set("data", { data: { a: 1, b: 2 } }); await lua.doString("data = data.data"); await lua.doString("print(31, data.a)").catch(console.error); await lua.doString("print(32, pairs(data))").catch(console.error); await lua.doString("data = { a = 1, b = 2 }"); await lua.doString("print(41, data.a)").catch(console.error); await lua.doString("print(42, pairs(data))").catch(console.error); }; main().catch(console.error);