Skip to content

Commit

Permalink
doc,test: args to buffer.copy can be Uint8Arrays
Browse files Browse the repository at this point in the history
This was semi-overlooked in #10236
because it always worked and didn’t need additional changes.

Ref: #10236
PR-URL: #11486
Reviewed-By: Rich Trott <rtrott@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
  • Loading branch information
addaleax committed Feb 24, 2017
1 parent c7205ba commit cba1020
Show file tree
Hide file tree
Showing 2 changed files with 27 additions and 1 deletion.
2 changes: 1 addition & 1 deletion doc/api/buffer.md
Original file line number Diff line number Diff line change
Expand Up @@ -977,7 +977,7 @@ A `RangeError` will be thrown if: `targetStart < 0`, `sourceStart < 0`,
added: v0.1.90
-->

* `target` {Buffer} A `Buffer` to copy into.
* `target` {Buffer|Uint8Array} A `Buffer` or [`Uint8Array`] to copy into.
* `targetStart` {Integer} The offset within `target` at which to begin
copying to. **Default:** `0`
* `sourceStart` {Integer} The offset within `buf` at which to begin copying from.
Expand Down
26 changes: 26 additions & 0 deletions test/parallel/test-buffer-copy.js
Original file line number Diff line number Diff line change
Expand Up @@ -118,3 +118,29 @@ assert.strictEqual(b.copy(c, 0, 100, 10), 0);

// when targetStart > targetLength, zero copied
assert.strictEqual(b.copy(c, 512, 0, 10), 0);

// Test that the `target` can be a Uint8Array.
{
const d = new Uint8Array(c);
// copy 512 bytes, from 0 to 512.
b.fill(++cntr);
d.fill(++cntr);
const copied = b.copy(d, 0, 0, 512);
assert.strictEqual(512, copied);
for (let i = 0; i < d.length; i++) {
assert.strictEqual(b[i], d[i]);
}
}

// Test that the source can be a Uint8Array, too.
{
const e = new Uint8Array(b);
// copy 512 bytes, from 0 to 512.
e.fill(++cntr);
c.fill(++cntr);
const copied = Buffer.prototype.copy.call(e, c, 0, 0, 512);
assert.strictEqual(512, copied);
for (let i = 0; i < c.length; i++) {
assert.strictEqual(e[i], c[i]);
}
}

0 comments on commit cba1020

Please sign in to comment.