diff options
author | Benoit Giannangeli <benoit.giannangeli@boursorama.fr> | 2017-03-01 12:22:55 +0100 |
---|---|---|
committer | Benoit Giannangeli <benoit.giannangeli@boursorama.fr> | 2017-03-01 12:31:01 +0100 |
commit | fcbf535dc7f14ce00d307bc3874d22f0d6cce9e5 (patch) | |
tree | 4b1d7352f393e77efe9934e63de78a70c90e592f | |
parent | 166b951b9d05eff654ef664124f17c8a37f418a6 (diff) | |
download | fengari-fcbf535dc7f14ce00d307bc3874d22f0d6cce9e5.tar.gz fengari-fcbf535dc7f14ce00d307bc3874d22f0d6cce9e5.tar.bz2 fengari-fcbf535dc7f14ce00d307bc3874d22f0d6cce9e5.zip |
[Parsing tests] LOADK, RETURN, MOVE
-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 |