1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
import root from './root.js';
/** Detect free variable `exports`. */
/** 检测自由变量“导出” */
const freeExports = typeof exports === 'object' && exports !== null && !exports.nodeType && exports;
/** Detect free variable `module`. */
/** 检测自由变量“模块”。 */
const freeModule =
freeExports && typeof module === 'object' && module !== null && !module.nodeType && module;
/** Detect the popular CommonJS extension `module.exports`. */
/** 检测流行的CommonJS扩展“module.exports” */
const moduleExports = freeModule && freeModule.exports === freeExports;
/** Built-in value references. */
/** 内置参考价值。 */
const Buffer = moduleExports ? root.Buffer : undefined,
allocUnsafe = Buffer ? Buffer.allocUnsafe : undefined;
/**
* Creates a clone of `buffer`.
* 创建一个“buffer”的克隆
* @private
* @param {Buffer} buffer 要克隆的缓冲区.
* @param {boolean} [isDeep] 指定深度克隆.
* @returns {Buffer} 返回克隆的缓冲区.
*/
function cloneBuffer(buffer, isDeep) {
if (isDeep) {
return buffer.slice();
}
const length = buffer.length;
const result = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length);
buffer.copy(result);
return result;
}
export default cloneBuffer;