aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/lstate.js11
-rw-r--r--src/ltable.js2
2 files changed, 8 insertions, 5 deletions
diff --git a/src/lstate.js b/src/lstate.js
index 519abde..99992c5 100644
--- a/src/lstate.js
+++ b/src/lstate.js
@@ -78,12 +78,15 @@ class global_State {
}
intern(stringArray) {
- let key = stringArray.map(e => `${e}|`).join('');
+ // TODO: when weak value maps are available
+ // let key = stringArray.map(e => `${e}|`).join('');
- if (!this.strt.has(key))
- this.strt.set(key, new lobject.TValue(CT.LUA_TLNGSTR, stringArray));
+ // if (!this.strt.has(key))
+ // this.strt.set(key, new lobject.TValue(CT.LUA_TLNGSTR, stringArray));
- return this.strt.get(key);
+ // return this.strt.get(key);
+
+ return new lobject.TValue(CT.LUA_TLNGSTR, stringArray);
}
}
diff --git a/src/ltable.js b/src/ltable.js
index 36928d5..025efe0 100644
--- a/src/ltable.js
+++ b/src/ltable.js
@@ -64,7 +64,7 @@ Table.prototype.luaH_next = function(L, keyI) {
if (tnidx === 'number' && nidx % 1 === 0)
L.stack[keyI] = new TValue(CT.LUA_TNUMINT, indexes[i + 1]);
else if (tnidx === 'string')
- L.stack[keyI] = L.l_G.strt.get(indexes[i + 1]);
+ L.stack[keyI] = new TValue(CT.LUA_TLNGSTR, indexes[i + 1].split('|').map(e => Number.parseInt(e)).slice(0, -1));
else
L.stack[keyI] = indexes[i + 1];