diff options
author | daurnimator <quae@daurnimator.com> | 2017-05-24 14:18:59 +1000 |
---|---|---|
committer | daurnimator <quae@daurnimator.com> | 2017-05-27 22:14:46 +1000 |
commit | ebbfaf9602a624e1c8eb39e88661fadc56996c4b (patch) | |
tree | e7b3399314665ed13a83a34bafa7e7f85f3d67ef | |
parent | 018f9cd8bbff126b7381bafa135e8127033c2faa (diff) | |
download | fengari-ebbfaf9602a624e1c8eb39e88661fadc56996c4b.tar.gz fengari-ebbfaf9602a624e1c8eb39e88661fadc56996c4b.tar.bz2 fengari-ebbfaf9602a624e1c8eb39e88661fadc56996c4b.zip |
src/lapi.js: Sync lua_pushliteral implementation with lua_pushstring
-rw-r--r-- | src/lapi.js | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/src/lapi.js b/src/lapi.js index 0cad44a..9b10d94 100644 --- a/src/lapi.js +++ b/src/lapi.js @@ -272,16 +272,17 @@ const lua_pushfstring = function (L, fmt, ...argp) { return lobject.luaO_pushvfstring(L, fmt, argp); }; +/* Similar to lua_pushstring, but takes a JS string */ const lua_pushliteral = function (L, s) { assert(typeof s === "string" || s === undefined || s === null, "lua_pushliteral expects a JS string"); if (s === undefined || s === null) L.stack[L.top] = new TValue(CT.LUA_TNIL, null); else { - let ts = new TValue(CT.LUA_TLNGSTR, lstring.luaS_newliteral(L, s)); - L.stack[L.top] = ts; + let ts = lstring.luaS_newliteral(L, s); + lobject.setsvalue2s(L, L.top, ts); + s = ts.getstr(); /* internal copy */ } - L.top++; assert(L.top <= L.ci.top, "stack overflow"); |