Skip to content

Commit d1f82eb

Browse files
committed
Polyfill luaL_openlibs macro
1 parent b429984 commit d1f82eb

File tree

2 files changed

+11
-2
lines changed

2 files changed

+11
-2
lines changed

scripts/build.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -149,7 +149,7 @@ elif [[ "$1" == "lua-5.5.0" ]]; then
149149
-s WASM_ASYNC_COMPILATION=0 \
150150
-s EXPORTED_FUNCTIONS="[
151151
'_luaL_newstate', \
152-
'_luaL_openlibs', \
152+
'_luaL_openselectedlibs', \
153153
'_luaL_loadstring', \
154154
'_luaL_makeseed', \
155155
'_lua_callk', \

src/binding-factory.ts

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -258,11 +258,20 @@ const luaLibBindings: Record<string, luaLibBindingFactoryFunc> = {
258258
}
259259
}
260260
},
261-
">=5.1.0": function(luaGlue: LuaEmscriptenModule) {
261+
">=5.1.0 <5.5.0": function(luaGlue: LuaEmscriptenModule) {
262262
return {
263263
luaL_openlibs: luaGlue.cwrap("luaL_openlibs", null, ["number"]),
264264
}
265265
},
266+
">=5.5.0": function(luaGlue: LuaEmscriptenModule) {
267+
// In Lua 5.5, luaL_openlibs is a macro: #define luaL_openlibs(L) luaL_openselectedlibs(L, ~0, 0)
268+
const openselectedlibs = luaGlue.cwrap("luaL_openselectedlibs", null, ["number", "number", "number"]);
269+
return {
270+
luaL_openlibs: function(L: LuaState) {
271+
openselectedlibs(L, ~0, 0);
272+
}
273+
}
274+
},
266275
}
267276

268277
/** @internal */

0 commit comments

Comments
 (0)