code: function crcDirect(arr) {
  		var crc = -1, // initial contents of LFBSR
  			i, j, l, temp;
  
  		for (i = 0, l = arr.length; i < l; i += 1) {
  			temp = (crc ^ arr[i]) & 0xff;
  
  			// read 8 bits one at a time
  			for (j = 0; j < 8; j += 1) {
  				if ((temp & 1) === 1) {
  					temp = (temp >>> 1) ^ poly;
  				} else {
  					temp = (temp >>> 1);
  				}
  			}
  			crc = (crc >>> 8) ^ temp;
  		}
  
  		// flip bits
  		return crc ^ -1;
  	}
docs: /*
  Compute CRC of array directly.
  
  This is slower for repeated calls, so append mode is not supported.