From cb0295e52870f22c5dd1a1726342b8d4b147b1c5 Mon Sep 17 00:00:00 2001 From: daurnimator Date: Tue, 2 May 2017 16:37:50 +1000 Subject: Refactor table implementation --- src/lcode.js | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'src/lcode.js') diff --git a/src/lcode.js b/src/lcode.js index 9fb7b06..690d07c 100644 --- a/src/lcode.js +++ b/src/lcode.js @@ -7,6 +7,7 @@ const llex = require('./llex.js'); const lobject = require('./lobject.js'); const lopcode = require('./lopcodes.js'); const lparser = require('./lparser.js'); +const ltable = require('./ltable.js'); require('./lstate.js'); /* XXX: if this isn't here then things break on require("ltm") */ const ltm = require('./ltm.js'); const lvm = require('./lvm.js'); @@ -482,7 +483,7 @@ const freeexps = function(fs, e1, e2) { */ const addk = function(fs, key, v) { let f = fs.f; - let idx = lobject.table_index(fs.ls.h, key); /* index scanner table */ + let idx = ltable.luaH_set(fs.ls.h.value, key); /* index scanner table */ if (idx && !idx.ttisnil()) { /* is there an index there? */ /* correct value? (warning: must distinguish floats from integers!) */ if (idx.value < fs.nk && f.k[idx.value].ttype() === v.ttype() && f.k[idx.value].value === v.value) @@ -490,7 +491,7 @@ const addk = function(fs, key, v) { } /* constant not found; create a new entry */ let k = fs.nk; - lobject.table_newindex(fs.ls.h, key, new TValue(CT.LUA_TNUMINT, k)); + idx.setivalue(k); f.k[k] = v; fs.nk++; return k; -- cgit v1.2.3-54-g00ecf