doc: Uint8Array support in Buffer functions

Buffer.from / new Buffer accept Uint8Array

Fixes: https://github.com/nodejs/node/issues/14118

PR-URL: https://github.com/nodejs/node/pull/19949
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Vse Mozhet Byt <vsemozhetbyt@gmail.com>
Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Gus Caplan <me@gus.host>
This commit is contained in:
SheetJS 2018-04-12 01:46:48 -04:00 committed by Rich Trott
parent 743341d185
commit 2652ab3c45

View File

@ -6,9 +6,8 @@
Prior to the introduction of [`TypedArray`], the JavaScript language had no Prior to the introduction of [`TypedArray`], the JavaScript language had no
mechanism for reading or manipulating streams of binary data. The `Buffer` class mechanism for reading or manipulating streams of binary data. The `Buffer` class
was introduced as part of the Node.js API to make it possible to interact with was introduced as part of the Node.js API to enable interaction with octet
octet streams in the context of things like TCP streams and file system streams in TCP streams, file system operations, and other contexts.
operations.
With [`TypedArray`] now available, the `Buffer` class implements the With [`TypedArray`] now available, the `Buffer` class implements the
[`Uint8Array`] API in a manner that is more optimized and suitable for Node.js. [`Uint8Array`] API in a manner that is more optimized and suitable for Node.js.
@ -193,8 +192,8 @@ Modern Web browsers follow the [WHATWG Encoding Standard][] which aliases
both `'latin1'` and `'ISO-8859-1'` to `'win-1252'`. This means that while doing both `'latin1'` and `'ISO-8859-1'` to `'win-1252'`. This means that while doing
something like `http.get()`, if the returned charset is one of those listed in something like `http.get()`, if the returned charset is one of those listed in
the WHATWG specification it is possible that the server actually returned the WHATWG specification it is possible that the server actually returned
win-1252-encoded data, and using `'latin1'` encoding may incorrectly decode the `'win-1252'`-encoded data, and using `'latin1'` encoding may incorrectly decode
characters. the characters.
## Buffers and TypedArray ## Buffers and TypedArray
<!-- YAML <!-- YAML
@ -401,7 +400,8 @@ changes:
> Stability: 0 - Deprecated: Use [`Buffer.from(buffer)`] instead. > Stability: 0 - Deprecated: Use [`Buffer.from(buffer)`] instead.
* `buffer` {Buffer} An existing `Buffer` to copy data from. * `buffer` {Buffer|Uint8Array} An existing `Buffer` or [`Uint8Array`] from which
to copy data.
Copies the passed `buffer` data onto a new `Buffer` instance. Copies the passed `buffer` data onto a new `Buffer` instance.
@ -841,7 +841,8 @@ A `TypeError` will be thrown if `arrayBuffer` is not an [`ArrayBuffer`] or a
added: v5.10.0 added: v5.10.0
--> -->
* `buffer` {Buffer} An existing `Buffer` to copy data from. * `buffer` {Buffer|Uint8Array} An existing `Buffer` or [`Uint8Array`] from which
to copy data.
Copies the passed `buffer` data onto a new `Buffer` instance. Copies the passed `buffer` data onto a new `Buffer` instance.
@ -1886,7 +1887,7 @@ added: v5.10.0
* Returns: {Buffer} A reference to `buf`. * Returns: {Buffer} A reference to `buf`.
Interprets `buf` as an array of unsigned 16-bit integers and swaps the Interprets `buf` as an array of unsigned 16-bit integers and swaps the
byte-order *in-place*. Throws [`ERR_INVALID_BUFFER_SIZE`] if [`buf.length`] is byte order *in-place*. Throws [`ERR_INVALID_BUFFER_SIZE`] if [`buf.length`] is
not a multiple of 2. not a multiple of 2.
```js ```js
@ -1914,7 +1915,7 @@ added: v5.10.0
* Returns: {Buffer} A reference to `buf`. * Returns: {Buffer} A reference to `buf`.
Interprets `buf` as an array of unsigned 32-bit integers and swaps the Interprets `buf` as an array of unsigned 32-bit integers and swaps the
byte-order *in-place*. Throws [`ERR_INVALID_BUFFER_SIZE`] if [`buf.length`] is byte order *in-place*. Throws [`ERR_INVALID_BUFFER_SIZE`] if [`buf.length`] is
not a multiple of 4. not a multiple of 4.
```js ```js
@ -1941,9 +1942,8 @@ added: v6.3.0
* Returns: {Buffer} A reference to `buf`. * Returns: {Buffer} A reference to `buf`.
Interprets `buf` as an array of 64-bit numbers and swaps the byte-order Interprets `buf` as an array of 64-bit numbers and swaps byte order *in-place*.
*in-place*. Throws [`ERR_INVALID_BUFFER_SIZE`] if [`buf.length`] is not a Throws [`ERR_INVALID_BUFFER_SIZE`] if [`buf.length`] is not a multiple of 8.
multiple of 8.
```js ```js
const buf1 = Buffer.from([0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8]); const buf1 = Buffer.from([0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8]);