var root = require('./_root');

/** Detect free variable `exports`. */ var freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;

/** Detect free variable `module`. */ var freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;

/** Detect the popular CommonJS extension `module.exports`. */ var moduleExports = freeModule && freeModule.exports === freeExports;

/** Built-in value references. */ var Buffer = moduleExports ? root.Buffer : undefined,

allocUnsafe = Buffer ? Buffer.allocUnsafe : undefined;

/**

* Creates a clone of  `buffer`.
*
* @private
* @param {Buffer} buffer The buffer to clone.
* @param {boolean} [isDeep] Specify a deep clone.
* @returns {Buffer} Returns the cloned buffer.
*/

function cloneBuffer(buffer, isDeep) {

if (isDeep) {
  return buffer.slice();
}
var length = buffer.length,
    result = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length);

buffer.copy(result);
return result;

}

module.exports = cloneBuffer;