]> zoso.dev Git - buffer.git/commitdiff
construct new buffer from buffer toJSON() output (fix #37)
authorFeross Aboukhadijeh <feross@feross.org>
Thu, 17 Jul 2014 05:57:12 +0000 (22:57 -0700)
committerFeross Aboukhadijeh <feross@feross.org>
Thu, 17 Jul 2014 05:57:12 +0000 (22:57 -0700)
index.js

index 746ecfd176c5e6910cf9f6d3e9363ece08039f6e..1955cbcbf86475d37f0f3e68218e66e5cd98b393 100644 (file)
--- a/index.js
+++ b/index.js
@@ -61,9 +61,11 @@ function Buffer (subject, encoding, noZero) {
     if (encoding === 'base64')
       subject = base64clean(subject)
     length = Buffer.byteLength(subject, encoding)
-  } else if (type === 'object') // assume object is array-like
+  } else if (type === 'object' && subject !== null) { // assume object is array-like
+    if (subject.type === 'Buffer' && Array.isArray(subject.data))
+      subject = subject.data
     length = +subject.length > 0 ? Math.floor(+subject.length) : 0
-  else
+  else
     throw new Error('First argument needs to be a number, array or string.')
 
   var buf