From 955c73898c992ef15396bafdf4383ce8a9bf1843 Mon Sep 17 00:00:00 2001 From: daurnimator Date: Fri, 30 Mar 2018 15:23:45 +1100 Subject: Add 'fengari' library containing version numbers etc --- src/fengarilib.js | 42 ++++++++++++++++++++++++++++++++++++++++++ src/linit.js | 4 ++++ src/lualib.js | 4 ++++ 3 files changed, 50 insertions(+) create mode 100644 src/fengarilib.js diff --git a/src/fengarilib.js b/src/fengarilib.js new file mode 100644 index 0000000..158fb03 --- /dev/null +++ b/src/fengarilib.js @@ -0,0 +1,42 @@ +const { + lua_pushinteger, + lua_pushliteral, + lua_setfield +} = require('./lua.js'); +const { + luaL_newlib +} = require('./lauxlib.js'); +const { + FENGARI_AUTHORS, + FENGARI_COPYRIGHT, + FENGARI_RELEASE, + FENGARI_VERSION, + FENGARI_VERSION_MAJOR, + FENGARI_VERSION_MINOR, + FENGARI_VERSION_NUM, + FENGARI_VERSION_RELEASE, + to_luastring +} = require("./fengaricore.js"); + +const luaopen_fengari = function(L) { + luaL_newlib(L, {}); + lua_pushliteral(L, FENGARI_AUTHORS); + lua_setfield(L, -2, to_luastring("AUTHORS")); + lua_pushliteral(L, FENGARI_COPYRIGHT); + lua_setfield(L, -2, to_luastring("COPYRIGHT")); + lua_pushliteral(L, FENGARI_RELEASE); + lua_setfield(L, -2, to_luastring("RELEASE")); + lua_pushliteral(L, FENGARI_VERSION); + lua_setfield(L, -2, to_luastring("VERSION")); + lua_pushliteral(L, FENGARI_VERSION_MAJOR); + lua_setfield(L, -2, to_luastring("VERSION_MAJOR")); + lua_pushliteral(L, FENGARI_VERSION_MINOR); + lua_setfield(L, -2, to_luastring("VERSION_MINOR")); + lua_pushinteger(L, FENGARI_VERSION_NUM); + lua_setfield(L, -2, to_luastring("VERSION_NUM")); + lua_pushliteral(L, FENGARI_VERSION_RELEASE); + lua_setfield(L, -2, to_luastring("VERSION_RELEASE")); + return 1; +}; + +module.exports.luaopen_fengari = luaopen_fengari; diff --git a/src/linit.js b/src/linit.js index a265045..8f461a4 100644 --- a/src/linit.js +++ b/src/linit.js @@ -38,3 +38,7 @@ loadedlibs[lualib.LUA_UTF8LIBNAME] = luaopen_utf8; loadedlibs[lualib.LUA_DBLIBNAME] = luaopen_debug; if (typeof process !== "undefined") loadedlibs[lualib.LUA_IOLIBNAME] = require('./liolib.js').luaopen_io; + +/* Extension: fengari library */ +const { luaopen_fengari } = require('./fengarilib.js'); +loadedlibs[lualib.LUA_FENGARILIBNAME] = luaopen_fengari; diff --git a/src/lualib.js b/src/lualib.js index 78f441f..d5f8d9d 100644 --- a/src/lualib.js +++ b/src/lualib.js @@ -52,5 +52,9 @@ const LUA_LOADLIBNAME = "package"; module.exports.LUA_LOADLIBNAME = LUA_LOADLIBNAME; module.exports.luaopen_package = require("./loadlib.js").luaopen_package; +const LUA_FENGARILIBNAME = "fengari"; +module.exports.LUA_FENGARILIBNAME = LUA_FENGARILIBNAME; +module.exports.luaopen_fengari = require("./fengarilib.js").luaopen_fengari; + const linit = require('./linit.js'); module.exports.luaL_openlibs = linit.luaL_openlibs; -- cgit v1.2.3-70-g09d2