From d15e00af0798783bdce5e27d2ab43de3ecb3fa4e Mon Sep 17 00:00:00 2001 From: Benoit Giannangeli Date: Mon, 24 Apr 2017 08:50:48 +0200 Subject: L.openupval was not set in luaF_close --- README.md | 4 ++-- src/lfunc.js | 4 ++-- src/lstate.js | 4 ++-- tests/ldblib.js | 2 +- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index c19a20b..dde8598 100644 --- a/README.md +++ b/README.md @@ -59,8 +59,9 @@ - [ ] luaL_testudata - [ ] luaL_unref - [ ] Run [Lua test suite](https://github.com/lua/tests) - - [x] strings.lua - [x] constructs.lua (`_soft`) + - [x] locals.lua (`_soft`) + - [x] strings.lua - [ ] all.lua - [ ] big.lua - [ ] checktable.lua @@ -76,7 +77,6 @@ - [ ] coroutine.lua - [ ] events.lua - [ ] goto.lua - - [ ] locals.lua - [ ] nextvar.lua - [ ] vararg.lua - [ ] attrib.lua diff --git a/src/lfunc.js b/src/lfunc.js index bde96d7..3f8fe2d 100644 --- a/src/lfunc.js +++ b/src/lfunc.js @@ -81,7 +81,7 @@ const findupval = function(L, level) { uv.u.open.next = pp; uv.u.open.touched = true; - pp = uv; + L.openupval = uv; uv.v = level; @@ -96,7 +96,7 @@ const luaF_close = function(L, level) { assert(uv.isopen()); L.openupval = uv.u.open.next; /* remove from 'open' list */ if (uv.refcount > 0) { - uv.value = L.stack[uv.v]; + uv.u.value = L.stack[uv.v]; uv.v = null; } } diff --git a/src/lstate.js b/src/lstate.js index d95889b..5842562 100644 --- a/src/lstate.js +++ b/src/lstate.js @@ -50,7 +50,7 @@ class lua_State extends lobject.TValue { this.ci = null; this.ciOff = null; this.stack = []; - this.openupval = []; + this.openupval = null; this.status = TS.LUA_OK; this.next = null; this.twups = [this]; @@ -138,7 +138,7 @@ const preinit_thread = function(L, g) { L.basehookcount = 0; L.allowhook = 1; L.hookcount = L.basehookcount; - L.openupval = []; + L.openupval = null; L.nny = 1; L.status = TS.LUA_OK; L.errfunc = 0; diff --git a/tests/ldblib.js b/tests/ldblib.js index 6587228..8913642 100644 --- a/tests/ldblib.js +++ b/tests/ldblib.js @@ -44,7 +44,7 @@ test('debug.sethook', function (t) { t.strictEqual( lapi.lua_tojsstring(L, -1), - "return count line count line count line count return count line count line count return count line count line count return count line return ", + "return count line count line count line count return count line count line count return count line count line count return count line ", "Correct element(s) on the stack" ); -- cgit v1.2.3-54-g00ecf