diff options
-rw-r--r-- | src/lapi.js | 1 | ||||
-rw-r--r-- | tests/load.js | 35 |
2 files changed, 35 insertions, 1 deletions
diff --git a/src/lapi.js b/src/lapi.js index a11dbca..dae533d 100644 --- a/src/lapi.js +++ b/src/lapi.js @@ -678,7 +678,6 @@ const lua_rawequal = function(L, index1, index2) { ** 'load' and 'call' functions (run Lua code) */ -// TODO: reader is ignored because we don't implement ZIO const lua_load = function(L, reader, data, chunckname, mode) { let z = new llex.MBuffer(L, data, reader); if (!chunckname) chunckname = "?"; diff --git a/tests/load.js b/tests/load.js index 0f524f3..86c3904 100644 --- a/tests/load.js +++ b/tests/load.js @@ -79,4 +79,39 @@ test('load', function (t) { "Correct element(s) on the stack" ); +}); + + +test('luaL_loadbuffer', function (t) { + let luaCode = ` + local a = "hello world" + return a + `, L; + + t.plan(3); + + t.doesNotThrow(function () { + + let bc = toByteCode(luaCode).dataView; + + L = lauxlib.luaL_newstate(); + + linit.luaL_openlibs(L); + + lauxlib.luaL_loadbuffer(L, bc, null, "test"); + + }, "Lua program loaded without error"); + + t.doesNotThrow(function () { + + lapi.lua_call(L, 0, -1); + + }, "Lua program ran without error"); + + t.strictEqual( + lapi.lua_tostring(L, -1), + "hello world", + "Correct element(s) on the stack" + ); + });
\ No newline at end of file |