]> zoso.dev Git - buffer.git/commitdiff
test: set TYPED_ARRAY_SUPPORT via global
authorFeross Aboukhadijeh <feross@feross.org>
Wed, 16 Sep 2015 05:21:05 +0000 (22:21 -0700)
committerFeross Aboukhadijeh <feross@feross.org>
Wed, 16 Sep 2015 05:21:05 +0000 (22:21 -0700)
This change is to prepare for proper `instanceof Buffer` support.

When testing the Object implementation, we’ll want to exclude the code
that changes the Buffer’s __proto__ values and it won’t be enough to
just set `Buffer.TYPED_ARRAY_SUPPORT = false` like we were doing before.

21 files changed:
bin/download-node-tests.js
index.js
test/base64.js
test/basic.js
test/compare.js
test/constructor.js
test/deprecated.js
test/from-string.js
test/methods.js
test/node-es6/test-buffer-arraybuffer.js
test/node-es6/test-buffer-iterator.js
test/node/test-buffer-ascii.js
test/node/test-buffer-bytelength.js
test/node/test-buffer-concat.js
test/node/test-buffer-indexof.js
test/node/test-buffer-inspect.js
test/node/test-buffer.js
test/slice.js
test/static.js
test/to-string.js
test/write.js

index 53c1c70f701507a034a1670396e9bfe3ede0587d..c1a88467e5c538df6b92571aade560b5b305a869 100755 (executable)
@@ -69,8 +69,8 @@ function testfixer (filename) {
 
     if (firstline) {
       // require buffer explicitly
-      var preamble = 'var Buffer = require(\'../../\').Buffer;\n' +
-        'if (process.env.OBJECT_IMPL) Buffer.TYPED_ARRAY_SUPPORT = false;'
+      var preamble = 'if (process.env.OBJECT_IMPL) global.TYPED_ARRAY_SUPPORT = false;\n' +
+      'var Buffer = require(\'../../\').Buffer;'
       if (/use strict/.test(line)) line += '\n' + preamble
       else line + preamble + '\n' + line
       firstline = false
index 06f75620dbf10a38f16fe6f73d03203a41d90051..1ff17316bd27ec0f4044d2fbce32bb62821c4a26 100644 (file)
--- a/index.js
+++ b/index.js
@@ -43,20 +43,22 @@ var rootParent = {}
  * We detect these buggy browsers and set `Buffer.TYPED_ARRAY_SUPPORT` to `false` so they
  * get the Object implementation, which is slower but behaves correctly.
  */
-Buffer.TYPED_ARRAY_SUPPORT = (function () {
-  function Bar () {}
-  try {
-    var arr = new Uint8Array(1)
-    arr.foo = function () { return 42 }
-    arr.constructor = Bar
-    return arr.foo() === 42 && // typed array instances can be augmented
-        arr.constructor === Bar && // constructor can be set
-        typeof arr.subarray === 'function' && // chrome 9-10 lack `subarray`
-        arr.subarray(1, 1).byteLength === 0 // ie10 has broken `subarray`
-  } catch (e) {
-    return false
-  }
-})()
+Buffer.TYPED_ARRAY_SUPPORT = global.TYPED_ARRAY_SUPPORT !== undefined
+  ? global.TYPED_ARRAY_SUPPORT
+  : (function () {
+      function Bar () {}
+      try {
+        var arr = new Uint8Array(1)
+        arr.foo = function () { return 42 }
+        arr.constructor = Bar
+        return arr.foo() === 42 && // typed array instances can be augmented
+            arr.constructor === Bar && // constructor can be set
+            typeof arr.subarray === 'function' && // chrome 9-10 lack `subarray`
+            arr.subarray(1, 1).byteLength === 0 // ie10 has broken `subarray`
+      } catch (e) {
+        return false
+      }
+    })()
 
 function kMaxLength () {
   return Buffer.TYPED_ARRAY_SUPPORT
index 12c4c780c963fbf15ecadb513240ddf633edaf44..e4ecc56a946b0fb03d3484aa7d52bed10a5d80d0 100644 (file)
@@ -1,6 +1,6 @@
+if (process.env.OBJECT_IMPL) global.TYPED_ARRAY_SUPPORT = false
 var B = require('../').Buffer
 var test = require('tape')
-if (process.env.OBJECT_IMPL) B.TYPED_ARRAY_SUPPORT = false
 
 test('base64: ignore whitespace', function (t) {
   var text = '\n   YW9ldQ==  '
index af6d5eef1392255882479492721557d302bfd939..de47970bd83fe1687cd1cc4c56c1c129552a6af0 100644 (file)
@@ -1,6 +1,6 @@
+if (process.env.OBJECT_IMPL) global.TYPED_ARRAY_SUPPORT = false
 var B = require('../').Buffer
 var test = require('tape')
-if (process.env.OBJECT_IMPL) B.TYPED_ARRAY_SUPPORT = false
 
 test('buf.constructor is Buffer', function (t) {
   var buf = new B([1, 2])
index 502d35d968ee7ca388b7216c63429787b1cd5c3c..62b478c73ef9b862bce08604d0b4d1c2300e436c 100644 (file)
@@ -1,6 +1,6 @@
+if (process.env.OBJECT_IMPL) global.TYPED_ARRAY_SUPPORT = false
 var B = require('../').Buffer
 var test = require('tape')
-if (process.env.OBJECT_IMPL) B.TYPED_ARRAY_SUPPORT = false
 
 test('buffer.compare', function (t) {
   var b = new B(1).fill('a')
index 3adc09700dfc3e25ae085b650d2a5fab185ab87b..1661c25d2c8b517e5e27451fd73fd7ee7e5e4ee6 100644 (file)
@@ -1,6 +1,6 @@
+if (process.env.OBJECT_IMPL) global.TYPED_ARRAY_SUPPORT = false
 var B = require('../').Buffer
 var test = require('tape')
-if (process.env.OBJECT_IMPL) B.TYPED_ARRAY_SUPPORT = false
 
 test('new buffer from array', function (t) {
   t.equal(
index 038526588d464ba3957cd478712536eb26ec08b8..991d61420e894f6bdaed2eaa822f0e37b6cc3d89 100644 (file)
@@ -1,6 +1,6 @@
+if (process.env.OBJECT_IMPL) global.TYPED_ARRAY_SUPPORT = false
 var B = require('../').Buffer
 var test = require('tape')
-if (process.env.OBJECT_IMPL) B.TYPED_ARRAY_SUPPORT = false
 
 test('.get (deprecated)', function (t) {
   var b = new B([7, 42])
index 25d3e57134767e1360992e4eedb2b9fdebbacf8f..349d261aedc64b21b7c9ccc903d9aabf5758bae9 100644 (file)
@@ -1,6 +1,6 @@
+if (process.env.OBJECT_IMPL) global.TYPED_ARRAY_SUPPORT = false
 var B = require('../').Buffer
 var test = require('tape')
-if (process.env.OBJECT_IMPL) B.TYPED_ARRAY_SUPPORT = false
 
 test('detect utf16 surrogate pairs', function (t) {
   var text = '\uD83D\uDE38' + '\uD83D\uDCAD' + '\uD83D\uDC4D'
index 8741252423c40ab02010a4028e79e96a216cec29..f45f72d4c1592282d2e63989ae7c7a9e00b884d0 100644 (file)
@@ -1,6 +1,6 @@
+if (process.env.OBJECT_IMPL) global.TYPED_ARRAY_SUPPORT = false
 var B = require('../').Buffer
 var test = require('tape')
-if (process.env.OBJECT_IMPL) B.TYPED_ARRAY_SUPPORT = false
 
 test('buffer.toJSON', function (t) {
   var data = [1, 2, 3, 4]
index b5e014e1bc9a198503d192282b9f897f1b325888..f0eb57c79b0eb150d5bf520e24e014cf3ede7921 100644 (file)
@@ -1,6 +1,6 @@
 'use strict';
+if (process.env.OBJECT_IMPL) global.TYPED_ARRAY_SUPPORT = false;
 var Buffer = require('../../').Buffer;
-if (process.env.OBJECT_IMPL) Buffer.TYPED_ARRAY_SUPPORT = false;
 
 var common = {};
 var assert = require('assert');
index 1c316d86d1f62bb8ad6362326f66a869173ba275..3aa3fbf0898883287c79d1a8b433584881ed1489 100644 (file)
@@ -1,6 +1,6 @@
 'use strict';
+if (process.env.OBJECT_IMPL) global.TYPED_ARRAY_SUPPORT = false;
 var Buffer = require('../../').Buffer;
-if (process.env.OBJECT_IMPL) Buffer.TYPED_ARRAY_SUPPORT = false;
 var common = {};
 var assert = require('assert');
 
index 40e6ee52b4e6260d2ac1cd712ccd2b1eeda0ab56..633a67797e6c3a9fef08f31b85b32e30461bd37b 100644 (file)
@@ -1,6 +1,6 @@
 'use strict';
+if (process.env.OBJECT_IMPL) global.TYPED_ARRAY_SUPPORT = false;
 var Buffer = require('../../').Buffer;
-if (process.env.OBJECT_IMPL) Buffer.TYPED_ARRAY_SUPPORT = false;
 var common = {};
 var assert = require('assert');
 
index 7879eff891955b7c08426c1a1aa0f9503df31f5c..d63922e9738adbdb8bd78146ac7793765ee2d0a4 100644 (file)
@@ -1,6 +1,6 @@
 'use strict';
+if (process.env.OBJECT_IMPL) global.TYPED_ARRAY_SUPPORT = false;
 var Buffer = require('../../').Buffer;
-if (process.env.OBJECT_IMPL) Buffer.TYPED_ARRAY_SUPPORT = false;
 
 var common = {};
 var assert = require('assert');
index d9fb48ed42f8075ad80b9863731af34d87c6bf3e..f6b60ae81f52d58231af0d90865f31e9abcf8546 100644 (file)
@@ -1,6 +1,6 @@
 'use strict';
+if (process.env.OBJECT_IMPL) global.TYPED_ARRAY_SUPPORT = false;
 var Buffer = require('../../').Buffer;
-if (process.env.OBJECT_IMPL) Buffer.TYPED_ARRAY_SUPPORT = false;
 var common = {};
 var assert = require('assert');
 
index 8fae483d0851cb06fc0f7a1ad74065658aa8ab70..283b9c8b1be43ff9832bc928c16b70de5b1889d5 100644 (file)
@@ -1,6 +1,6 @@
 'use strict';
+if (process.env.OBJECT_IMPL) global.TYPED_ARRAY_SUPPORT = false;
 var Buffer = require('../../').Buffer;
-if (process.env.OBJECT_IMPL) Buffer.TYPED_ARRAY_SUPPORT = false;
 var common = {};
 var assert = require('assert');
 
index 98ec0d123b464dcd6b79109d477f33c665fbf6e6..719444f3372f4eff5cf06a50c06ff8903efacfc5 100644 (file)
@@ -1,6 +1,6 @@
 'use strict';
+if (process.env.OBJECT_IMPL) global.TYPED_ARRAY_SUPPORT = false;
 var Buffer = require('../../').Buffer;
-if (process.env.OBJECT_IMPL) Buffer.TYPED_ARRAY_SUPPORT = false;
 var common = {};
 var assert = require('assert');
 
index b89533695a64d37a5c6fa7331ac929c3226955d3..d6468f6a9d28bc2245a4884ab873f4f9e0f63a50 100644 (file)
@@ -1,6 +1,6 @@
 'use strict';
+if (process.env.OBJECT_IMPL) global.TYPED_ARRAY_SUPPORT = false;
 var Buffer = require('../../').Buffer;
-if (process.env.OBJECT_IMPL) Buffer.TYPED_ARRAY_SUPPORT = false;
 var common = {};
 var assert = require('assert');
 
index ba256ca6b1621877082a7a4b66f215192e342efa..d4adb39bcd69d73b843e8623366ea627276c4752 100644 (file)
@@ -1,6 +1,6 @@
+if (process.env.OBJECT_IMPL) global.TYPED_ARRAY_SUPPORT = false
 var B = require('../').Buffer
 var test = require('tape')
-if (process.env.OBJECT_IMPL) B.TYPED_ARRAY_SUPPORT = false
 
 test('modifying buffer created by .slice() modifies original memory', function (t) {
   if (!B.TYPED_ARRAY_SUPPORT) return t.end()
index d9d32f4a7c4dc6bcc7f20132199217b65065b239..68faa0055a1436060f08baaf5760ef53a2a8a495 100644 (file)
@@ -1,6 +1,6 @@
+if (process.env.OBJECT_IMPL) global.TYPED_ARRAY_SUPPORT = false
 var B = require('../').Buffer
 var test = require('tape')
-if (process.env.OBJECT_IMPL) B.TYPED_ARRAY_SUPPORT = false
 
 test('Buffer.isEncoding', function (t) {
   t.equal(B.isEncoding('HEX'), true)
index 099229820dcec930907a6f00febff8a4a118c29f..2950d4d0d027b85308f031fea3fff31f4ea953f0 100644 (file)
@@ -1,6 +1,6 @@
+if (process.env.OBJECT_IMPL) global.TYPED_ARRAY_SUPPORT = false
 var B = require('../').Buffer
 var test = require('tape')
-if (process.env.OBJECT_IMPL) B.TYPED_ARRAY_SUPPORT = false
 
 test('utf8 buffer to base64', function (t) {
   t.equal(
index e59c04703706aac85cc2a5290766a18d767df9a1..38b199e24e60435ef7fa2db112815788834297fe 100644 (file)
@@ -1,7 +1,7 @@
+if (process.env.OBJECT_IMPL) global.TYPED_ARRAY_SUPPORT = false
 var B = require('../').Buffer
 var test = require('tape')
 var isnan = require('is-nan')
-if (process.env.OBJECT_IMPL) B.TYPED_ARRAY_SUPPORT = false
 
 test('buffer.write string should get parsed as number', function (t) {
   var b = new B(64)