Skip to content

Commit

Permalink
doc: remove ES6/ECMAScript 2015 from buffer.md
Browse files Browse the repository at this point in the history
As the introduction of ES6 features recedes further into the past, it
is less and less relevant (and more and more distracting) to cite it in
documentation text. Remove mention in buffer.md.

PR-URL: #19685
Reviewed-By: Tiancheng "Timothy" Gu <[email protected]>
Reviewed-By: Vse Mozhet Byt <[email protected]>
Reviewed-By: Luigi Pinca <[email protected]>
Reviewed-By: Trivikram Kamat <[email protected]>
Reviewed-By: Colin Ihrig <[email protected]>
  • Loading branch information
Trott authored and targos committed Apr 2, 2018
1 parent 75d23ab commit c8fa8f1
Showing 1 changed file with 13 additions and 17 deletions.
30 changes: 13 additions & 17 deletions doc/api/buffer.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,15 +5,14 @@

> Stability: 2 - Stable
Prior to the introduction of [`TypedArray`] in [`ECMAScript 2015`] (ES6), the
JavaScript language had no 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 octet streams in the context of things
like TCP streams and file system operations.
Prior to the introduction of [`TypedArray`], the JavaScript language had no
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
octet streams in the context of things like TCP streams and file system
operations.

Now that [`TypedArray`] has been added in ES6, the `Buffer` class implements the
[`Uint8Array`] API in a manner that is more optimized and suitable for Node.js'
use cases.
With [`TypedArray`] now available, the `Buffer` class implements the
[`Uint8Array`] API in a manner that is more optimized and suitable for Node.js.

Instances of the `Buffer` class are similar to arrays of integers but
correspond to fixed-sized, raw memory allocations outside the V8 heap.
Expand Down Expand Up @@ -207,11 +206,10 @@ changes:
-->

`Buffer` instances are also [`Uint8Array`] instances. However, there are subtle
incompatibilities with the TypedArray specification in [`ECMAScript 2015`].
For example, while [`ArrayBuffer#slice()`] creates a copy of the slice, the
implementation of [`Buffer#slice()`][`buf.slice()`] creates a view over the
existing `Buffer` without copying, making [`Buffer#slice()`][`buf.slice()`] far
more efficient.
incompatibilities with [`TypedArray`]. For example, while
[`ArrayBuffer#slice()`] creates a copy of the slice, the implementation of
[`Buffer#slice()`][`buf.slice()`] creates a view over the existing `Buffer`
without copying, making [`Buffer#slice()`][`buf.slice()`] far more efficient.

It is also possible to create new [`TypedArray`] instances from a `Buffer` with
the following caveats:
Expand Down Expand Up @@ -278,10 +276,9 @@ function:
* [`Buffer.from(arrayBuffer[, byteOffset [, length]])`][`Buffer.from(arrayBuffer)`]
* [`Buffer.from(string[, encoding])`][`Buffer.from(string)`]

## Buffers and ES6 iteration
## Buffers and iteration

`Buffer` instances can be iterated over using the [`ECMAScript 2015`] (ES6) `for..of`
syntax.
`Buffer` instances can be iterated over using `for..of` syntax:

```js
const buf = Buffer.from([1, 2, 3]);
Expand Down Expand Up @@ -2552,5 +2549,4 @@ This value may depend on the JS engine that is being used.
[RFC1345]: https://tools.ietf.org/html/rfc1345
[RFC4648, Section 5]: https://tools.ietf.org/html/rfc4648#section-5
[WHATWG Encoding Standard]: https://encoding.spec.whatwg.org/
[`ECMAScript 2015`]: https://www.ecma-international.org/ecma-262/6.0/index.html
[iterator]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Iteration_protocols

0 comments on commit c8fa8f1

Please sign in to comment.