]> zoso.dev Git - buffer.git/commitdiff
support environments that lack ArrayBuffer.isView (Node 0.10)
authorFeross Aboukhadijeh <feross@feross.org>
Wed, 5 Apr 2017 18:24:52 +0000 (11:24 -0700)
committerFeross Aboukhadijeh <feross@feross.org>
Wed, 5 Apr 2017 18:24:52 +0000 (11:24 -0700)
This helps browserify tests to pass

index.js

index c06f72d22b3d39fa6927499a118fedfe9d51afe1..848299bca75e82e6daff1d866160fa29f6360e73 100644 (file)
--- a/index.js
+++ b/index.js
@@ -252,8 +252,8 @@ function fromObject (obj) {
   }
 
   if (obj) {
-    if (ArrayBuffer.isView(obj) || 'length' in obj) {
       if (typeof obj.length !== 'number' || isnan(obj.length)) {
+    if (isArrayBufferView(obj) || 'length' in obj) {
         return createBuffer(0)
       }
       return fromArrayLike(obj)
@@ -364,7 +364,7 @@ function byteLength (string, encoding) {
   if (Buffer.isBuffer(string)) {
     return string.length
   }
-  if (ArrayBuffer.isView(string) || string instanceof ArrayBuffer) {
+  if (isArrayBufferView(string) || string instanceof ArrayBuffer) {
     return string.byteLength
   }
   if (typeof string !== 'string') {
@@ -1704,3 +1704,8 @@ function blitBuffer (src, dst, offset, length) {
 function isnan (val) {
   return val !== val // eslint-disable-line no-self-compare
 }
+
+// Node 0.10 supports `ArrayBuffer` but lacks `ArrayBuffer.isView`
+function isArrayBufferView (obj) {
+  return (typeof ArrayBuffer.isView === 'function') && ArrayBuffer.isView(obj)
+}