kriszyp / msgpackr

Ultra-fast MessagePack implementation with extension for record and structural cloning / msgpack.org[JavaScript/NodeJS]

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

unpack return corrupt result with `v1.7.1` + `{bundleStrings: true}` + large array

panmenghan opened this issue · comments

// v1.7.1
import {Unpackr, Packr} from 'msgpackr'

const MSGPACK_OPTIONS = {bundleStrings: true}
const packer = new Packr(MSGPACK_OPTIONS)
const unpacker = new Unpackr(MSGPACK_OPTIONS)

const payload = {
  output: [
    {
      url: 'https://www.example.com/',
    },
  ],
}

for (let i = 0; i < 10_000; i++) {
  payload.output.push(payload.output[0])
}

console.log(unpacker.unpack(packer.pack(payload)))

print this result:

{
  '\x00': [
    { url: '' }, { url: '' }, { url: '' }, { url: '' }, { url: '' },
    { url: '' }, { url: '' }, { url: '' }, { url: '' }, { url: '' },
    { url: '' }, { url: '' }, { url: '' }, { url: '' }, { url: '' },
    { url: '' }, { url: '' }, { url: '' }, { url: '' }, { url: '' },
    { url: '' }, { url: '' }, { url: '' }, { url: '' }, { url: '' },
    { url: '' }, { url: '' }, { url: '' }, { url: '' }, { url: '' },
    { url: '' }, { url: '' }, { url: '' }, { url: '' }, { url: '' },
    { url: '' }, { url: '' }, { url: '' }, { url: '' }, { url: '' },
    { url: '' }, { url: '' }, { url: '' }, { url: '' }, { url: '' },
    { url: '' }, { url: '' }, { url: '' }, { url: '' }, { url: '' },
    { url: '' }, { url: '' }, { url: '' }, { url: '' }, { url: '' },
    { url: '' }, { url: '' }, { url: '' }, { url: '' }, { url: '' },
    { url: '' }, { url: '' }, { url: '' }, { url: '' }, { url: '' },
    { url: '' }, { url: '' }, { url: '' }, { url: '' }, { url: '' },
    { url: '' }, { url: '' }, { url: '' }, { url: '' }, { url: '' },
    { url: '' }, { url: '' }, { url: '' }, { url: '' }, { url: '' },
    { url: '' }, { url: '' }, { url: '' }, { url: '' }, { url: '' },
    { url: '' }, { url: '' }, { url: '' }, { url: '' }, { url: '' },
    { url: '' }, { url: '' }, { url: '' }, { url: '' }, { url: '' },
    { url: '' }, { url: '' }, { url: '' }, { url: '' }, { url: '' },
    ... 9901 more items
  ]
}

v1.7.0 is ok.

Should be fixed in v1.7.2, let me know if you see any issues with it.

It works. Thanks.