concat to typed array when possible
This commit is contained in:
@@ -319,6 +319,21 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function concatTypedarrays (chunks) {
|
||||||
|
var size = 0
|
||||||
|
var i = chunks.length
|
||||||
|
while (i--) { size += chunks[i].length }
|
||||||
|
var b = new Uint8Array(size)
|
||||||
|
var offset = 0
|
||||||
|
for (i = 0, l = chunks.length; i < l; i++) {
|
||||||
|
var chunk = chunks[i]
|
||||||
|
b.set(chunk, offset)
|
||||||
|
offset += chunk.byteLength || chunk.length
|
||||||
|
}
|
||||||
|
|
||||||
|
return b
|
||||||
|
}
|
||||||
|
|
||||||
/********************************************************/
|
/********************************************************/
|
||||||
/* Blob constructor */
|
/* Blob constructor */
|
||||||
/********************************************************/
|
/********************************************************/
|
||||||
@@ -339,7 +354,9 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
this._buffer = [].concat.apply([], chunks)
|
this._buffer = global.Uint8Array
|
||||||
|
? concatTypedarrays(chunks)
|
||||||
|
: [].concat.apply([], chunks)
|
||||||
this.size = this._buffer.length
|
this.size = this._buffer.length
|
||||||
this.type = opts ? opts.type || '' : ''
|
this.type = opts ? opts.type || '' : ''
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user