From fcbf535dc7f14ce00d307bc3874d22f0d6cce9e5 Mon Sep 17 00:00:00 2001 From: Benoit Giannangeli Date: Wed, 1 Mar 2017 12:22:55 +0100 Subject: [Parsing tests] LOADK, RETURN, MOVE --- src/lcode.js | 2 ++ tests/lexparse.js | 30 ++++++++++++++++++++++++++++++ tests/lvm.js | 2 +- 3 files changed, 33 insertions(+), 1 deletion(-) 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 -- cgit v1.2.3-54-g00ecf