]> zoso.dev Git - buffer.git/commitdiff
Add `instanceof Buffer` support (fix #40)
authorFeross Aboukhadijeh <feross@feross.org>
Wed, 16 Sep 2015 05:29:21 +0000 (22:29 -0700)
committerFeross Aboukhadijeh <feross@feross.org>
Wed, 16 Sep 2015 05:29:21 +0000 (22:29 -0700)
index.js
test/basic.js

index 1ff17316bd27ec0f4044d2fbce32bb62821c4a26..5a68f2c91404ca92a3e77706711d69235b9c4b45 100644 (file)
--- a/index.js
+++ b/index.js
@@ -4,6 +4,7 @@
  * @author   Feross Aboukhadijeh <feross@feross.org> <http://feross.org>
  * @license  MIT
  */
+/* eslint-disable no-proto */
 
 var base64 = require('base64-js')
 var ieee754 = require('ieee754')
@@ -214,10 +215,16 @@ function fromJsonObject (that, object) {
   return that
 }
 
+if (Buffer.TYPED_ARRAY_SUPPORT) {
+  Buffer.prototype.__proto__ = Uint8Array.prototype
+  Buffer.__proto__ = Uint8Array
+}
+
 function allocate (that, length) {
   if (Buffer.TYPED_ARRAY_SUPPORT) {
     // Return an augmented `Uint8Array` instance, for best performance
     that = Buffer._augment(new Uint8Array(length))
+    that.__proto__ = Buffer.prototype
   } else {
     // Fallback: Return an object instance of the Buffer class
     that.length = length
index de47970bd83fe1687cd1cc4c56c1c129552a6af0..f093f8e8eb3966ddf3d86f1e1a9febc09c86f860 100644 (file)
@@ -8,6 +8,12 @@ test('buf.constructor is Buffer', function (t) {
   t.end()
 })
 
+test('instanceof Buffer', function (t) {
+  var buf = new B([1, 2])
+  t.ok(buf instanceof B)
+  t.end()
+})
+
 test('convert to Uint8Array in modern browsers', function (t) {
   if (B.TYPED_ARRAY_SUPPORT) {
     var buf = new B([1, 2])