diff options
author | daurnimator <quae@daurnimator.com> | 2017-05-06 11:04:05 +1000 |
---|---|---|
committer | daurnimator <quae@daurnimator.com> | 2017-05-09 13:28:31 +1000 |
commit | 048234f2ceaad1801473bf8a95219d08797b5e9d (patch) | |
tree | 8947f6e2d5cbc010287c2ff59400804298fd9681 /src | |
parent | 9136aea9f85db964dc368051326a2678d962b8f8 (diff) | |
download | fengari-048234f2ceaad1801473bf8a95219d08797b5e9d.tar.gz fengari-048234f2ceaad1801473bf8a95219d08797b5e9d.tar.bz2 fengari-048234f2ceaad1801473bf8a95219d08797b5e9d.zip |
Initialise CClosure upvalues TValues in constructor
Diffstat (limited to 'src')
-rw-r--r-- | src/lapi.js | 3 | ||||
-rw-r--r-- | src/lobject.js | 3 |
2 files changed, 5 insertions, 1 deletions
diff --git a/src/lapi.js b/src/lapi.js index 97cb061..89297cc 100644 --- a/src/lapi.js +++ b/src/lapi.js @@ -280,7 +280,8 @@ const lua_pushcclosure = function(L, fn, n) { L.top -= n; while (n--) { - cl.upvalue[n] = L.stack[L.top + n]; + cl.upvalue[n].setfrom(L.stack[L.top + n]) + L.stack[L.top + n] = void 0; } L.stack[L.top] = new TValue(CT.LUA_TCCL, cl); diff --git a/src/lobject.js b/src/lobject.js index ab50af8..e4ef380 100644 --- a/src/lobject.js +++ b/src/lobject.js @@ -197,6 +197,9 @@ class CClosure { this.f = f; this.nupvalues = n; this.upvalue = new Array(n); /* list of upvalues as TValues */ + while (n--) { + this.upvalue[n] = new TValue(CT.LUA_TNIL, null); + } } } |