diff --git a/lib/fs.js b/lib/fs.js index c1f24608de2407..2df03dd07e0764 100644 --- a/lib/fs.js +++ b/lib/fs.js @@ -153,6 +153,15 @@ function makeCallback(cb) { }; } +function validateBuffer(buffer) { + if (!isUint8Array(buffer)) { + const err = new errors.TypeError('ERR_INVALID_ARG_TYPE', 'buffer', + ['Buffer', 'Uint8Array']); + Error.captureStackTrace(err, validateBuffer); + throw err; + } +} + function validateFd(fd) { let err; @@ -745,9 +754,7 @@ fs.openSync = function(path, flags, mode) { fs.read = function(fd, buffer, offset, length, position, callback) { validateFd(fd); - if (!isUint8Array(buffer)) - throw new errors.TypeError('ERR_INVALID_ARG_TYPE', 'buffer', - ['Buffer', 'Uint8Array']); + validateBuffer(buffer); offset |= 0; length |= 0; @@ -779,9 +786,7 @@ Object.defineProperty(fs.read, internalUtil.customPromisifyArgs, fs.readSync = function(fd, buffer, offset, length, position) { validateFd(fd); - if (!isUint8Array(buffer)) - throw new errors.TypeError('ERR_INVALID_ARG_TYPE', 'buffer', - ['Buffer', 'Uint8Array']); + validateBuffer(buffer); offset |= 0; length |= 0;