mirror of
https://github.com/zebrajr/node.git
synced 2025-12-06 12:20:27 +01:00
Several changes:
* Soft-Deprecate Buffer() constructors
* Add `Buffer.from()`, `Buffer.alloc()`, and `Buffer.allocUnsafe()`
* Add `--zero-fill-buffers` command line option
* Add byteOffset and length to `new Buffer(arrayBuffer)` constructor
* buffer.fill('') previously had no effect, now zero-fills
* Update the docs
PR-URL: https://github.com/nodejs/node/pull/4682
Reviewed-By: Сковорода Никита Андреевич <chalkerx@gmail.com>
Reviewed-By: Stephen Belanger <admin@stephenbelanger.com>
33 lines
789 B
JavaScript
33 lines
789 B
JavaScript
'use strict';
|
|
// Flags: --zero-fill-buffers
|
|
|
|
// when using --zero-fill-buffers, every Buffer and SlowBuffer
|
|
// instance must be zero filled upon creation
|
|
|
|
require('../common');
|
|
const SlowBuffer = require('buffer').SlowBuffer;
|
|
const assert = require('assert');
|
|
|
|
function isZeroFilled(buf) {
|
|
for (let n = 0; n < buf.length; n++)
|
|
if (buf[n] > 0) return false;
|
|
return true;
|
|
}
|
|
|
|
// This can be somewhat unreliable because the
|
|
// allocated memory might just already happen to
|
|
// contain all zeroes. The test is run multiple
|
|
// times to improve the reliability.
|
|
for (let i = 0; i < 50; i++) {
|
|
const bufs = [
|
|
Buffer.alloc(20),
|
|
Buffer.allocUnsafe(20),
|
|
SlowBuffer(20),
|
|
Buffer(20),
|
|
new SlowBuffer(20)
|
|
];
|
|
for (const buf of bufs) {
|
|
assert(isZeroFilled(buf));
|
|
}
|
|
}
|