| function cloneArrayBuffer(buff) { |
| if (typeof buff.slice === 'function') { |
| return buff.slice(0); |
| } |
| // IE10-11 slice() polyfill |
| var target = new ArrayBuffer(buff.byteLength); |
| var targetArray = new Uint8Array(target); |
| var sourceArray = new Uint8Array(buff); |
| targetArray.set(sourceArray); |
| return target; |
| } |
| |
| function cloneBinaryObject(object) { |
| if (object instanceof ArrayBuffer) { |
| return cloneArrayBuffer(object); |
| } |
| var size = object.size; |
| var type = object.type; |
| // Blob |
| if (typeof object.slice === 'function') { |
| return object.slice(0, size, type); |
| } |
| // PhantomJS slice() replacement |
| return object.webkitSlice(0, size, type); |
| } |
| |
| export default cloneBinaryObject; |