From 46d9777cbb610079019266510c284c8c5791222b Mon Sep 17 00:00:00 2001 From: daurnimator Date: Mon, 22 May 2017 10:37:19 +1000 Subject: src/lstrlib.js: Always return a new string from num2straux It may get mutated in lua_number2strx --- src/lstrlib.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/lstrlib.js b/src/lstrlib.js index 1397039..8bc2b0e 100644 --- a/src/lstrlib.js +++ b/src/lstrlib.js @@ -97,11 +97,11 @@ const adddigit = function(buff, n, x) { const num2straux = function(x) { /* if 'inf' or 'NaN', format it like '%g' */ if (Object.is(x, Infinity)) - return lua.to_luastring('inf', true); + return lua.to_luastring('inf', true).slice(0); else if (Object.is(x, -Infinity)) - return lua.to_luastring('-inf', true); + return lua.to_luastring('-inf', true).slice(0); else if (Number.isNaN(x)) - return lua.to_luastring('nan', true); + return lua.to_luastring('nan', true).slice(0); else if (x === 0) { /* can be -0... */ /* create "0" or "-0" followed by exponent */ let zero = sprintf(luaconf.LUA_NUMBER_FMT + "x0p+0", x).split('').map(e => e.charCodeAt(0)); -- cgit v1.2.3-70-g09d2