]> zoso.dev Git - buffer.git/commitdiff
Buffer.concat() accepts Uint8Array instances
authorFeross Aboukhadijeh <feross@feross.org>
Fri, 16 Feb 2018 07:09:57 +0000 (23:09 -0800)
committerFeross Aboukhadijeh <feross@feross.org>
Fri, 16 Feb 2018 07:09:57 +0000 (23:09 -0800)
Fix https://github.com/feross/buffer/issues/173

index.js
test/methods.js

index a5b9ef51045b43a716470c6169caa1441516d1e6..19a9978b1437791339caaf57109e2bf10b614928 100644 (file)
--- a/index.js
+++ b/index.js
@@ -369,6 +369,9 @@ Buffer.concat = function concat (list, length) {
   var pos = 0
   for (i = 0; i < list.length; ++i) {
     var buf = list[i]
+    if (isArrayBufferView(buf)) {
+      buf = Buffer.from(buf)
+    }
     if (!Buffer.isBuffer(buf)) {
       throw new TypeError('"list" argument must be an Array of Buffers')
     }
index 36964376f509c2a578720a31fdd4be8f9ef2ec2e..a63e4c4eb3138cad557ec6d6544600119fed6386 100644 (file)
@@ -60,6 +60,13 @@ test('concat() a varying number of buffers', function (t) {
   t.end()
 })
 
+test('concat() works on Uint8Array instances', function (t) {
+  var result = B.concat([new Uint8Array([1, 2]), new Uint8Array([3, 4])])
+  var expected = Buffer.from([1, 2, 3, 4])
+  t.deepEqual(result, expected)
+  t.end()
+})
+
 test('fill', function (t) {
   var b = new B(10)
   b.fill(2)