aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorBenoit Giannangeli <benoit.giannangeli@boursorama.fr>2017-02-14 09:13:20 +0100
committerBenoit Giannangeli <benoit.giannangeli@boursorama.fr>2017-02-14 10:52:32 +0100
commit9e3acbbb3f0dc45cc1444645cd1b4585ef911017 (patch)
tree0d01441f8d179d224ec2e6134b99320aaf39b146 /src
parentf5536cd8aae574bd57f646e1e53e733f8b61a46a (diff)
downloadfengari-9e3acbbb3f0dc45cc1444645cd1b4585ef911017.tar.gz
fengari-9e3acbbb3f0dc45cc1444645cd1b4585ef911017.tar.bz2
fengari-9e3acbbb3f0dc45cc1444645cd1b4585ef911017.zip
Setting metatable manually until setmetatable is available
Using a breakpoint flag on specific opcode to stop the program so we can manipulate the stack manually within the test
Diffstat (limited to 'src')
-rw-r--r--src/ltm.js2
-rw-r--r--src/lvm.js3
2 files changed, 4 insertions, 1 deletions
diff --git a/src/ltm.js b/src/ltm.js
index f963aa9..fc0d0ec 100644
--- a/src/ltm.js
+++ b/src/ltm.js
@@ -87,7 +87,7 @@ const luaT_gettmbyobj = function(L, o, event) {
switch(o.ttnov()) {
case CT.LUA_TTABLE:
case CT.LUA_TTUSERDATA:
- mt = o.value.metatable;
+ mt = o.metatable;
break;
default:
// TODO: mt = G(L)->mt[ttnov(o)];
diff --git a/src/lvm.js b/src/lvm.js
index d5c6c46..b0b5d53 100644
--- a/src/lvm.js
+++ b/src/lvm.js
@@ -68,6 +68,9 @@ const luaV_execute = function(L) {
opcode = OC.OpCodes[i.opcode];
}
+ if (i.breakpoint) // TODO: remove, used until lapi
+ return;
+
switch (opcode) {
case "OP_MOVE": {
L.stack[ra] = L.stack[RB(L, base, i)];