diff options
author | daurnimator <quae@daurnimator.com> | 2017-05-11 14:39:20 +1000 |
---|---|---|
committer | daurnimator <quae@daurnimator.com> | 2017-05-11 15:19:33 +1000 |
commit | d7bdbc932ac22df593ba013118c0835c5638d084 (patch) | |
tree | 26156cae668b956eb380619fa0798c83247016ff /src | |
parent | d88e93b2465a1e5a8933725c8854a626f2a4214b (diff) | |
download | fengari-d7bdbc932ac22df593ba013118c0835c5638d084.tar.gz fengari-d7bdbc932ac22df593ba013118c0835c5638d084.tar.bz2 fengari-d7bdbc932ac22df593ba013118c0835c5638d084.zip |
src/ltable.js: If you try and set value nil with luaH_setint, delete the entry
See #37
Diffstat (limited to 'src')
-rw-r--r-- | src/ltable.js | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/src/ltable.js b/src/ltable.js index 1b55256..b1f48e8 100644 --- a/src/ltable.js +++ b/src/ltable.js @@ -80,6 +80,10 @@ const setgeneric = function(t, hash, key) { const luaH_setint = function(t, key, value) { assert(typeof key == "number" && (key|0) === key && value instanceof lobject.TValue); let hash = key; /* table_hash known result */ + if (value.ttisnil()) { + t.strong.delete(hash); + return; + } let v = t.strong.get(hash); if (v) { let tv = v.value; |