in varint.js [47:72]
function writeUnsignedVarIntInto(destResult, n, buffer, offset) {
if (typeof n !== 'number' || n < 0) {
// TODO: integer check
return destResult.reset(errors.expected(n, 'unsigned integer'), null);
}
var needed = Math.ceil(countBits(n) / 7);
var start = offset;
var end = offset + needed;
if (end > buffer.length) {
var remain = buffer.length - offset;
return WriteResult.poolShortError(destResult, needed, remain, offset);
}
offset = end;
while (offset > start) {
var b = n & 0x7f;
n >>= 7;
if (offset !== end) b |= 0x80;
buffer.writeUInt8(b, --offset, true);
if (n <= 0) break;
}
return destResult.reset(null, end);
}