diff options
author | Benoit Giannangeli <giann008@gmail.com> | 2017-05-29 19:05:07 +0200 |
---|---|---|
committer | daurnimator <quae@daurnimator.com> | 2017-05-31 22:26:56 +1000 |
commit | 2e9c10dd6f9b9fd83b7424eb10684570b663348b (patch) | |
tree | b6ef9277a25fa088ceef84bfe2ccbfc117d0bff0 /src | |
parent | da7551f134377574bbda7dfe5b73e3989fddeb77 (diff) | |
download | fengari-2e9c10dd6f9b9fd83b7424eb10684570b663348b.tar.gz fengari-2e9c10dd6f9b9fd83b7424eb10684570b663348b.tar.bz2 fengari-2e9c10dd6f9b9fd83b7424eb10684570b663348b.zip |
src/ldebug.js: Test for null result of findlocal in lua_setlocal
Diffstat (limited to 'src')
-rw-r--r-- | src/ldebug.js | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/src/ldebug.js b/src/ldebug.js index 4f8d385..532fd9c 100644 --- a/src/ldebug.js +++ b/src/ldebug.js @@ -151,13 +151,15 @@ const lua_getlocal = function(L, ar, n) { }; const lua_setlocal = function(L, ar, n) { + let name; swapextra(L); let local = findlocal(L, ar.i_ci, n); - let name = local.name; - let pos = local.pos; - if (name) { - lobject.setobjs2s(L, pos, L.top - 1); + if (local) { + name = local.name; + lobject.setobjs2s(L, local.pos, L.top - 1); delete L.stack[--L.top]; /* pop value */ + } else { + name = null; } swapextra(L); return name; |