|
1 | 1 | 'use strict' |
2 | 2 | var Buffer = require('safe-buffer').Buffer |
| 3 | +var toBuffer = require('./to-buffer') |
3 | 4 | var Transform = require('readable-stream').Transform |
4 | 5 | var inherits = require('inherits') |
5 | 6 |
|
@@ -38,55 +39,6 @@ HashBase.prototype._flush = function (callback) { |
38 | 39 | callback(error) |
39 | 40 | } |
40 | 41 |
|
41 | | -var useUint8Array = typeof Uint8Array !== 'undefined' |
42 | | -var useArrayBuffer = typeof ArrayBuffer !== 'undefined' && |
43 | | - typeof Uint8Array !== 'undefined' && |
44 | | - ArrayBuffer.isView && |
45 | | - (Buffer.prototype instanceof Uint8Array || Buffer.TYPED_ARRAY_SUPPORT) |
46 | | - |
47 | | -function toBuffer (data, encoding) { |
48 | | - // No need to do anything for exact instance |
49 | | - // This is only valid when safe-buffer.Buffer === buffer.Buffer, i.e. when Buffer.from/Buffer.alloc existed |
50 | | - if (data instanceof Buffer) return data |
51 | | - |
52 | | - // Convert strings to Buffer |
53 | | - if (typeof data === 'string') return Buffer.from(data, encoding) |
54 | | - |
55 | | - /* |
56 | | - * Wrap any TypedArray instances and DataViews |
57 | | - * Makes sense only on engines with full TypedArray support -- let Buffer detect that |
58 | | - */ |
59 | | - if (useArrayBuffer && ArrayBuffer.isView(data)) { |
60 | | - if (data.byteLength === 0) return Buffer.alloc(0) // Bug in Node.js <6.3.1, which treats this as out-of-bounds |
61 | | - var res = Buffer.from(data.buffer, data.byteOffset, data.byteLength) |
62 | | - // Recheck result size, as offset/length doesn't work on Node.js <5.10 |
63 | | - // We just go to Uint8Array case if this fails |
64 | | - if (res.byteLength === data.byteLength) return res |
65 | | - } |
66 | | - |
67 | | - /* |
68 | | - * Uint8Array in engines where Buffer.from might not work with ArrayBuffer, just copy over |
69 | | - * Doesn't make sense with other TypedArray instances |
70 | | - */ |
71 | | - if (useUint8Array && data instanceof Uint8Array) return Buffer.from(data) |
72 | | - |
73 | | - /* |
74 | | - * Old Buffer polyfill on an engine that doesn't have TypedArray support |
75 | | - * Also, this is from a different Buffer polyfill implementation then we have, as instanceof check failed |
76 | | - * Convert to our current Buffer implementation |
77 | | - */ |
78 | | - if ( |
79 | | - Buffer.isBuffer(data) && |
80 | | - data.constructor && |
81 | | - typeof data.constructor.isBuffer === 'function' && |
82 | | - data.constructor.isBuffer(data) |
83 | | - ) { |
84 | | - return Buffer.from(data) |
85 | | - } |
86 | | - |
87 | | - throw new TypeError('The "data" argument must be of type string or an instance of Buffer, TypedArray, or DataView.') |
88 | | -} |
89 | | - |
90 | 42 | HashBase.prototype.update = function (data, encoding) { |
91 | 43 | if (this._finalized) throw new Error('Digest already called') |
92 | 44 |
|
|
0 commit comments