69 lines
1.5 KiB
JavaScript
69 lines
1.5 KiB
JavaScript
/* eslint-disable node/no-deprecated-api */
|
|
var buffer = require("./buffer.js");
|
|
|
|
var Buffer = buffer.Buffer; // alternative to using Object.keys for old browsers
|
|
|
|
function copyProps(src, dst) {
|
|
for (var key in src) {
|
|
dst[key] = src[key];
|
|
}
|
|
}
|
|
|
|
if (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) {
|
|
module.exports = buffer;
|
|
} else {
|
|
// Copy properties from require('buffer')
|
|
copyProps(buffer, exports);
|
|
exports.Buffer = SafeBuffer;
|
|
}
|
|
|
|
function SafeBuffer(arg, encodingOrOffset, length) {
|
|
return Buffer(arg, encodingOrOffset, length);
|
|
} // Copy static methods from Buffer
|
|
|
|
|
|
copyProps(Buffer, SafeBuffer);
|
|
|
|
SafeBuffer.from = function (arg, encodingOrOffset, length) {
|
|
if (typeof arg === 'number') {
|
|
throw new TypeError('Argument must not be a number');
|
|
}
|
|
|
|
return Buffer(arg, encodingOrOffset, length);
|
|
};
|
|
|
|
SafeBuffer.alloc = function (size, fill, encoding) {
|
|
if (typeof size !== 'number') {
|
|
throw new TypeError('Argument must be a number');
|
|
}
|
|
|
|
var buf = Buffer(size);
|
|
|
|
if (fill !== undefined) {
|
|
if (typeof encoding === 'string') {
|
|
buf.fill(fill, encoding);
|
|
} else {
|
|
buf.fill(fill);
|
|
}
|
|
} else {
|
|
buf.fill(0);
|
|
}
|
|
|
|
return buf;
|
|
};
|
|
|
|
SafeBuffer.allocUnsafe = function (size) {
|
|
if (typeof size !== 'number') {
|
|
throw new TypeError('Argument must be a number');
|
|
}
|
|
|
|
return Buffer(size);
|
|
};
|
|
|
|
SafeBuffer.allocUnsafeSlow = function (size) {
|
|
if (typeof size !== 'number') {
|
|
throw new TypeError('Argument must be a number');
|
|
}
|
|
|
|
return buffer.SlowBuffer(size);
|
|
}; |