forked from lix-project/lix-website
33 lines
664 B
JavaScript
33 lines
664 B
JavaScript
|
var bufferFill = require('buffer-fill')
|
||
|
var allocUnsafe = require('buffer-alloc-unsafe')
|
||
|
|
||
|
module.exports = function alloc (size, fill, encoding) {
|
||
|
if (typeof size !== 'number') {
|
||
|
throw new TypeError('"size" argument must be a number')
|
||
|
}
|
||
|
|
||
|
if (size < 0) {
|
||
|
throw new RangeError('"size" argument must not be negative')
|
||
|
}
|
||
|
|
||
|
if (Buffer.alloc) {
|
||
|
return Buffer.alloc(size, fill, encoding)
|
||
|
}
|
||
|
|
||
|
var buffer = allocUnsafe(size)
|
||
|
|
||
|
if (size === 0) {
|
||
|
return buffer
|
||
|
}
|
||
|
|
||
|
if (fill === undefined) {
|
||
|
return bufferFill(buffer, 0)
|
||
|
}
|
||
|
|
||
|
if (typeof encoding !== 'string') {
|
||
|
encoding = undefined
|
||
|
}
|
||
|
|
||
|
return bufferFill(buffer, fill, encoding)
|
||
|
}
|