diff options
-rw-r--r-- | src/lcode.js | 2 | ||||
-rw-r--r-- | tests/lexparse.js | 30 | ||||
-rw-r--r-- | tests/lvm.js | 2 |
3 files changed, 33 insertions, 1 deletions
diff --git a/src/lcode.js b/src/lcode.js index d8b0252..46b8c74 100644 --- a/src/lcode.js +++ b/src/lcode.js @@ -11,6 +11,7 @@ const ltm = require('./ltm.js'); const lua = require('./lua.js'); const lvm = require('./lvm.js'); const CT = lua.CT; +const OpCodes = lopcode.OpCodes; const OpCodesI = lopcode.OpCodesI; const TValue = lobject.TValue; @@ -358,6 +359,7 @@ const luaK_patchclose = function(fs, list, level) { ** line information. Return 'i' position. */ const luaK_code = function(fs, i) { + console.log(OpCodes[i.opcode]); let f = fs.f; dischargejpc(fs); /* 'pc' will change */ /* put new instruction in code array */ diff --git a/tests/lexparse.js b/tests/lexparse.js index 0d9c51d..10c4845 100644 --- a/tests/lexparse.js +++ b/tests/lexparse.js @@ -37,4 +37,34 @@ test('LOADK, RETURN', function (t) { "Correct element(s) on the stack" ); +}); + + +test('MOVE', function (t) { + let luaCode = ` + local a = "hello world" + local b = a + return b + `, L; + + t.plan(2); + + t.doesNotThrow(function () { + + L = lauxlib.luaL_newstate(); + + linit.luaL_openlibs(L); + + lapi.lua_load(L, null, luaCode, "test", "text"); + + lapi.lua_call(L, 0, -1); + + }, "JS 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 diff --git a/tests/lvm.js b/tests/lvm.js index 5b5deac..f9fb347 100644 --- a/tests/lvm.js +++ b/tests/lvm.js @@ -33,7 +33,7 @@ test('LOADK, RETURN', function (t) { }); -test('MOV', function (t) { +test('MOVE', function (t) { let luaCode = ` local a = "hello world" local b = a |