blob: 9cce396594f605a000a6aec4c58b19577a5e9b32 [file] [log] [blame]
Leo Repp58b9f112021-11-22 11:57:47 +01001/*!
2 * Determine if an object is a Buffer
3 *
4 * @author Feross Aboukhadijeh <https://feross.org>
5 * @license MIT
6 */
7
8// The _isBuffer check is for Safari 5-7 support, because it's missing
9// Object.prototype.constructor. Remove this eventually
10module.exports = function (obj) {
11 return obj != null && (isBuffer(obj) || isSlowBuffer(obj) || !!obj._isBuffer)
12}
13
14function isBuffer (obj) {
15 return !!obj.constructor && typeof obj.constructor.isBuffer === 'function' && obj.constructor.isBuffer(obj)
16}
17
18// For Node v0.10 support. Remove this eventually.
19function isSlowBuffer (obj) {
20 return typeof obj.readFloatLE === 'function' && typeof obj.slice === 'function' && isBuffer(obj.slice(0, 0))
21}