diff --git a/lib/copy-sync/copy-file-sync.js b/lib/copy-sync/copy-file-sync.js index 4e4cd3fd..102a6be6 100644 --- a/lib/copy-sync/copy-file-sync.js +++ b/lib/copy-sync/copy-file-sync.js @@ -3,7 +3,7 @@ const fs = require('graceful-fs') const BUF_LENGTH = 64 * 1024 -const _buff = new Buffer(BUF_LENGTH) +const _buff = require('../util/buffer')(BUF_LENGTH) function copyFileSync (srcFile, destFile, options) { const overwrite = options.overwrite diff --git a/lib/move-sync/index.js b/lib/move-sync/index.js index 3c2aa935..6d510d05 100644 --- a/lib/move-sync/index.js +++ b/lib/move-sync/index.js @@ -5,6 +5,7 @@ const path = require('path') const copySync = require('../copy-sync').copySync const removeSync = require('../remove').removeSync const mkdirpSync = require('../mkdirs').mkdirsSync +const buffer = require('../util/buffer') function moveSync (src, dest, options) { options = options || {} @@ -60,7 +61,7 @@ function moveSyncAcrossDevice (src, dest, overwrite) { function moveFileSyncAcrossDevice (src, dest, overwrite) { const BUF_LENGTH = 64 * 1024 - const _buff = new Buffer(BUF_LENGTH) + const _buff = buffer(BUF_LENGTH) const flags = overwrite ? 'w' : 'wx' diff --git a/lib/util/buffer.js b/lib/util/buffer.js new file mode 100644 index 00000000..6cd4e310 --- /dev/null +++ b/lib/util/buffer.js @@ -0,0 +1,10 @@ +module.exports = function (size) { + if (typeof Buffer.allocUnsafe === 'function') { + try { + return Buffer.allocUnsafe(size) + } catch (e) { + return new Buffer(size) + } + } + return new Buffer(size) +}