code: function mapArrayBufferViews(ary) {
      return ary.map(function(chunk) {
        if (chunk.buffer instanceof ArrayBuffer) {
          var buf = chunk.buffer;
  
          // if this is a subarray, make a copy so we only
          // include the subarray region from the underlying buffer
          if (chunk.byteLength !== buf.byteLength) {
            var copy = new Uint8Array(chunk.byteLength);
            copy.set(new Uint8Array(buf, chunk.byteOffset, chunk.byteLength));
            buf = copy.buffer;
          }
  
          return buf;
        }
  
        return chunk;
      });
    }
docs: Helper function that maps ArrayBufferViews to ArrayBuffers
  Used by BlobBuilder constructor and old browsers that didn't
  support it in the Blob constructor.