Looks like a [for loop is used for iterating the properties in the objects](https://github.com/ygoe/msgpack.js/blob/master/msgpack.js#L184) ```javascript for (let key in data) { if (data[key] !== undefined) { length++; } } ``` This also iterates the properties defined in prototypes which I don't think is an expected behaviour. The current typescript version of msgpack [is using `Object.keys`](https://github.com/msgpack/msgpack-javascript/blob/main/src/Encoder.ts#L269) that does not returns those properties. What do you think?