diff options
author | daurnimator <quae@daurnimator.com> | 2017-05-05 12:41:42 +1000 |
---|---|---|
committer | daurnimator <quae@daurnimator.com> | 2017-05-05 13:29:41 +1000 |
commit | 0299958592ed34cbd6e8cf01891fc5bbaee71750 (patch) | |
tree | 9af94dd1a097c1003107c9767b08016dae5feca5 /src | |
parent | 0c48b50fc0f9f447153e2bdb935fb940ca18a745 (diff) | |
download | fengari-0299958592ed34cbd6e8cf01891fc5bbaee71750.tar.gz fengari-0299958592ed34cbd6e8cf01891fc5bbaee71750.tar.bz2 fengari-0299958592ed34cbd6e8cf01891fc5bbaee71750.zip |
src/ldebug.js: If no local is found then you can't get its name
Diffstat (limited to 'src')
-rw-r--r-- | src/ldebug.js | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/src/ldebug.js b/src/ldebug.js index 18a36a6..ef0f719 100644 --- a/src/ldebug.js +++ b/src/ldebug.js @@ -134,10 +134,13 @@ const lua_getlocal = function(L, ar, n) { name = lfunc.luaF_getlocalname(L.stack[L.top - 1].value.p, n, 0); } else { /* active function; get information through 'ar' */ let local = findlocal(L, ar.i_ci, n); - name = local.name; - let pos = L.stack[local.pos]; - if (name) + if (local) { + name = local.name; + let pos = L.stack[local.pos]; L.stack[L.top++] = new TValue(pos.type, pos.value); + } else { + name = null; + } } swapextra(L); return name; |