From cad0eac50b70a280611dd89440a805912ebfad8b Mon Sep 17 00:00:00 2001 From: Benoit Giannangeli Date: Fri, 16 Jun 2017 11:00:16 +0200 Subject: packnum: num can be 32 bits --- src/lstrlib.js | 5 +++-- tests/test-suite/inprogress/tpack.js | 3 +-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/lstrlib.js b/src/lstrlib.js index f2518e0..9344794 100644 --- a/src/lstrlib.js +++ b/src/lstrlib.js @@ -548,9 +548,10 @@ const packint = function(b, n, islittle, size, neg) { const packnum = function(b, n, islittle, size) { let dv = new DataView(new ArrayBuffer(size)); - dv.setFloat64(0, n, islittle); + if (size === 4) dv.setFloat32(0, n, islittle); + else dv.setFloat64(0, n, islittle); - for (let i = 0; i < 8; i++) + for (let i = 0; i < size; i++) b.push(dv.getUint8(i, islittle)); }; diff --git a/tests/test-suite/inprogress/tpack.js b/tests/test-suite/inprogress/tpack.js index f081edb..5b70410 100644 --- a/tests/test-suite/inprogress/tpack.js +++ b/tests/test-suite/inprogress/tpack.js @@ -400,9 +400,8 @@ test("[test-suite] tpack: overflow in packing)", function (t) { }); -test("[test-suite] tpack: Lua integer size)", function (t) { +test("[test-suite] tpack: Lua integer size", function (t) { let luaCode = ` - for i = 1, sizeLI - 1 do assert(unpack(">j", pack(">j", math.maxinteger)) == math.maxinteger) assert(unpack("