aboutsummaryrefslogtreecommitdiff
path: root/tests/lvm.js
diff options
context:
space:
mode:
Diffstat (limited to 'tests/lvm.js')
-rw-r--r--tests/lvm.js31
1 files changed, 31 insertions, 0 deletions
diff --git a/tests/lvm.js b/tests/lvm.js
index e10ddb2..084a9ad 100644
--- a/tests/lvm.js
+++ b/tests/lvm.js
@@ -270,4 +270,35 @@ test('VARARG', function (t) {
[1, 2, 3],
"Program output is correct"
);
+});
+
+
+test('GETUPVAL, SETUPVAL', function (t) {
+ let luaCode = `
+ local a = 1
+
+ local f = function ()
+ a = a + 1
+ return a
+ end
+
+ f()
+
+ return a
+ `, vm;
+
+ t.plan(2);
+
+ t.comment("Running following code: \n" + luaCode);
+
+ t.doesNotThrow(function () {
+ vm = getVM(luaCode);
+ vm.execute();
+ }, "Program executed without errors");
+
+ t.strictEqual(
+ vm.L.stack[vm.L.top - 1].value,
+ 2,
+ "Program output is correct"
+ );
}); \ No newline at end of file