| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100 | 'use strict';// selected so (BASE - 1) * 0x100000000 + 0xffffffff is a safe integervar BASE = 1000000;function readInt8(buffer) {	var high = buffer.readInt32BE(0);	var low = buffer.readUInt32BE(4);	var sign = '';	if (high < 0) {		high = ~high + (low === 0);		low = (~low + 1) >>> 0;		sign = '-';	}	var result = '';	var carry;	var t;	var digits;	var pad;	var l;	var i;	{		carry = high % BASE;		high = high / BASE >>> 0;		t = 0x100000000 * carry + low;		low = t / BASE >>> 0;		digits = '' + (t - BASE * low);		if (low === 0 && high === 0) {			return sign + digits + result;		}		pad = '';		l = 6 - digits.length;		for (i = 0; i < l; i++) {			pad += '0';		}		result = pad + digits + result;	}	{		carry = high % BASE;		high = high / BASE >>> 0;		t = 0x100000000 * carry + low;		low = t / BASE >>> 0;		digits = '' + (t - BASE * low);		if (low === 0 && high === 0) {			return sign + digits + result;		}		pad = '';		l = 6 - digits.length;		for (i = 0; i < l; i++) {			pad += '0';		}		result = pad + digits + result;	}	{		carry = high % BASE;		high = high / BASE >>> 0;		t = 0x100000000 * carry + low;		low = t / BASE >>> 0;		digits = '' + (t - BASE * low);		if (low === 0 && high === 0) {			return sign + digits + result;		}		pad = '';		l = 6 - digits.length;		for (i = 0; i < l; i++) {			pad += '0';		}		result = pad + digits + result;	}	{		carry = high % BASE;		t = 0x100000000 * carry + low;		digits = '' + t % BASE;		return sign + digits + result;	}}module.exports = readInt8;
 |