diff options
author | Benoit Giannangeli <giann008@gmail.com> | 2017-04-10 13:20:08 +0200 |
---|---|---|
committer | Benoit Giannangeli <giann008@gmail.com> | 2017-04-10 13:20:08 +0200 |
commit | 89e4a76a812499cc108bb77fb5c9ae1877123df6 (patch) | |
tree | 0e9e83066e7baaab2a63b442d559745a68f701b7 /src/lstrlib.js | |
parent | 8bbc810540cfed397527d716b822511efa4a2723 (diff) | |
download | fengari-89e4a76a812499cc108bb77fb5c9ae1877123df6.tar.gz fengari-89e4a76a812499cc108bb77fb5c9ae1877123df6.tar.bz2 fengari-89e4a76a812499cc108bb77fb5c9ae1877123df6.zip |
Handle -0
Diffstat (limited to 'src/lstrlib.js')
-rw-r--r-- | src/lstrlib.js | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/src/lstrlib.js b/src/lstrlib.js index 81b754d..f4f254f 100644 --- a/src/lstrlib.js +++ b/src/lstrlib.js @@ -106,7 +106,10 @@ const num2straux = function(x) { return sprintf(luaconf.LUA_NUMBER_FMT, x).split('').map(e => e.charCodeAt(0)); else if (x === 0) { /* can be -0... */ /* create "0" or "-0" followed by exponent */ - return sprintf(luaconf.LUA_NUMBER_FMT + "x0p+0", x).split('').map(e => e.charCodeAt(0)); + let zero = sprintf(luaconf.LUA_NUMBER_FMT + "x0p+0", x).split('').map(e => e.charCodeAt(0)); + if (Object.is(x, -0)) + return [char['-']].concat(zero); + return zero; } else { let fe = lobject.frexp(x); /* 'x' fraction and exponent */ let m = fe[0]; |