]> zoso.dev Git - buffer.git/commitdiff
Ensure typed array constructor property can be set
authorParsha Pourkhomami <parshap+git@gmail.com>
Tue, 7 Jul 2015 19:08:01 +0000 (12:08 -0700)
committerParsha Pourkhomami <parshap+git@gmail.com>
Tue, 7 Jul 2015 19:08:01 +0000 (12:08 -0700)
Otherwise set TYPED_ARRAY_SUPPORT to false and fallback to the object
implementation.

index.js

index da0a4963bf97ea6d1ff6b08d3d6a42fe3f452a97..91ea5e92982bd746ba1d2862d130ceb6330e7486 100644 (file)
--- a/index.js
+++ b/index.js
@@ -39,11 +39,14 @@ var rootParent = {}
  * get the Object implementation, which is slower but will work correctly.
  */
 Buffer.TYPED_ARRAY_SUPPORT = (function () {
+  function Foo () {}
   try {
     var buf = new ArrayBuffer(0)
     var arr = new Uint8Array(buf)
     arr.foo = function () { return 42 }
-    return arr.foo() === 42 && // typed array instances can be augmented
+    arr.constructor = Foo
+    return arr.constructor === Foo && // constructor can be set
+        arr.foo() === 42 && // typed array instances can be augmented
         typeof arr.subarray === 'function' && // chrome 9-10 lack `subarray`
         new Uint8Array(1).subarray(1, 1).byteLength === 0 // ie10 has broken `subarray`
   } catch (e) {