Browse Source

2017-08-15, Version 8.4.0 (Current)

Notable changes

* **HTTP2**
  * Experimental support for the built-in `http2` has been added via the
    `--expose-http2` flag.
    [#14239](https://github.com/nodejs/node/pull/14239)

* **Inspector**
  * `require()` is available in the inspector console now.
    [#8837](https://github.com/nodejs/node/pull/8837)
  * Multiple contexts, as created by the `vm` module, are supported now.
    [#14465](https://github.com/nodejs/node/pull/14465)

* **N-API**
  * New APIs for creating number values have been introduced.
    [#14573](https://github.com/nodejs/node/pull/14573)

* **Stream**
  * For `Duplex` streams, the high water mark option can now be set
    independently for the readable and the writable side.
    [#14636](https://github.com/nodejs/node/pull/14636)

* **Util**
  * `util.format` now supports the `%o` and `%O` specifiers for printing
    objects.
    [#14558](https://github.com/nodejs/node/pull/14558)

PR-URL: https://github.com/nodejs/node/pull/14811
v6
Anna Henningsen 7 years ago
committed by Evan Lucas
parent
commit
1fe0741e50
  1. 2
      doc/api/cli.md
  2. 230
      doc/api/http2.md
  3. 10
      doc/api/n-api.md
  4. 2
      doc/api/stream.md
  5. 2
      doc/api/tls.md
  6. 2
      doc/api/util.md
  7. 130
      doc/changelogs/CHANGELOG_V8.md

2
doc/api/cli.md

@ -172,7 +172,7 @@ Silence all process warnings (including deprecations).
### `--expose-http2` ### `--expose-http2`
<!-- YAML <!-- YAML
added: REPLACEME added: v8.4.0
--> -->
Enable the experimental `'http2'` module. Enable the experimental `'http2'` module.

230
doc/api/http2.md

@ -69,7 +69,7 @@ req.end();
### Class: Http2Session ### Class: Http2Session
<!-- YAML <!-- YAML
added: REPLACEME added: v8.4.0
--> -->
* Extends: {EventEmitter} * Extends: {EventEmitter}
@ -103,14 +103,14 @@ solely on the API of the `Http2Session`.
#### Event: 'close' #### Event: 'close'
<!-- YAML <!-- YAML
added: REPLACEME added: v8.4.0
--> -->
The `'close'` event is emitted once the `Http2Session` has been terminated. The `'close'` event is emitted once the `Http2Session` has been terminated.
#### Event: 'connect' #### Event: 'connect'
<!-- YAML <!-- YAML
added: REPLACEME added: v8.4.0
--> -->
The `'connect'` event is emitted once the `Http2Session` has been successfully The `'connect'` event is emitted once the `Http2Session` has been successfully
@ -120,7 +120,7 @@ connected to the remote peer and communication may begin.
#### Event: 'error' #### Event: 'error'
<!-- YAML <!-- YAML
added: REPLACEME added: v8.4.0
--> -->
The `'error'` event is emitted when an error occurs during the processing of The `'error'` event is emitted when an error occurs during the processing of
@ -128,7 +128,7 @@ an `Http2Session`.
#### Event: 'frameError' #### Event: 'frameError'
<!-- YAML <!-- YAML
added: REPLACEME added: v8.4.0
--> -->
The `'frameError'` event is emitted when an error occurs while attempting to The `'frameError'` event is emitted when an error occurs while attempting to
@ -150,7 +150,7 @@ immediately following the `'frameError'` event.
#### Event: 'goaway' #### Event: 'goaway'
<!-- YAML <!-- YAML
added: REPLACEME added: v8.4.0
--> -->
The `'goaway'` event is emitted when a GOAWAY frame is received. When invoked, The `'goaway'` event is emitted when a GOAWAY frame is received. When invoked,
@ -167,7 +167,7 @@ the handler function will receive three arguments:
#### Event: 'localSettings' #### Event: 'localSettings'
<!-- YAML <!-- YAML
added: REPLACEME added: v8.4.0
--> -->
The `'localSettings'` event is emitted when an acknowledgement SETTINGS frame The `'localSettings'` event is emitted when an acknowledgement SETTINGS frame
@ -188,7 +188,7 @@ session.on('localSettings', (settings) => {
#### Event: 'remoteSettings' #### Event: 'remoteSettings'
<!-- YAML <!-- YAML
added: REPLACEME added: v8.4.0
--> -->
The `'remoteSettings'` event is emitted when a new SETTINGS frame is received The `'remoteSettings'` event is emitted when a new SETTINGS frame is received
@ -203,7 +203,7 @@ session.on('remoteSettings', (settings) => {
#### Event: 'stream' #### Event: 'stream'
<!-- YAML <!-- YAML
added: REPLACEME added: v8.4.0
--> -->
The `'stream'` event is emitted when a new `Http2Stream` is created. When The `'stream'` event is emitted when a new `Http2Stream` is created. When
@ -256,7 +256,7 @@ server.listen(80);
#### Event: 'socketError' #### Event: 'socketError'
<!-- YAML <!-- YAML
added: REPLACEME added: v8.4.0
--> -->
The `'socketError'` event is emitted when an `'error'` is emitted on the The `'socketError'` event is emitted when an `'error'` is emitted on the
@ -269,7 +269,7 @@ registered that will, by default, forward the event on to the owning
#### Event: 'timeout' #### Event: 'timeout'
<!-- YAML <!-- YAML
added: REPLACEME added: v8.4.0
--> -->
After the `http2session.setTimeout()` method is used to set the timeout period After the `http2session.setTimeout()` method is used to set the timeout period
@ -283,7 +283,7 @@ session.on('timeout', () => { /** .. **/ });
#### http2session.destroy() #### http2session.destroy()
<!-- YAML <!-- YAML
added: REPLACEME added: v8.4.0
--> -->
* Returns: {undefined} * Returns: {undefined}
@ -293,7 +293,7 @@ Immediately terminates the `Http2Session` and the associated `net.Socket` or
#### http2session.destroyed #### http2session.destroyed
<!-- YAML <!-- YAML
added: REPLACEME added: v8.4.0
--> -->
* Value: {boolean} * Value: {boolean}
@ -303,7 +303,7 @@ longer be used, otherwise `false`.
#### http2session.localSettings #### http2session.localSettings
<!-- YAML <!-- YAML
added: REPLACEME added: v8.4.0
--> -->
* Value: {[Settings Object][]} * Value: {[Settings Object][]}
@ -313,7 +313,7 @@ A prototype-less object describing the current local settings of this
#### http2session.pendingSettingsAck #### http2session.pendingSettingsAck
<!-- YAML <!-- YAML
added: REPLACEME added: v8.4.0
--> -->
* Value: {boolean} * Value: {boolean}
@ -325,7 +325,7 @@ frames have been acknowledged.
#### http2session.remoteSettings #### http2session.remoteSettings
<!-- YAML <!-- YAML
added: REPLACEME added: v8.4.0
--> -->
* Value: {[Settings Object][]} * Value: {[Settings Object][]}
@ -335,7 +335,7 @@ A prototype-less object describing the current remote settings of this
#### http2session.request(headers[, options]) #### http2session.request(headers[, options])
<!-- YAML <!-- YAML
added: REPLACEME added: v8.4.0
--> -->
* `headers` {[Headers Object][]} * `headers` {[Headers Object][]}
@ -392,7 +392,7 @@ fields.
#### http2session.rstStream(stream, code) #### http2session.rstStream(stream, code)
<!-- YAML <!-- YAML
added: REPLACEME added: v8.4.0
--> -->
* stream {Http2Stream} * stream {Http2Stream}
@ -405,7 +405,7 @@ Sends an `RST_STREAM` frame to the connected HTTP/2 peer, causing the given
#### http2session.setTimeout(msecs, callback) #### http2session.setTimeout(msecs, callback)
<!-- YAML <!-- YAML
added: REPLACEME added: v8.4.0
--> -->
* `msecs` {number} * `msecs` {number}
@ -418,7 +418,7 @@ registered as a listener on the `'timeout'` event.
#### http2session.shutdown(options[, callback]) #### http2session.shutdown(options[, callback])
<!-- YAML <!-- YAML
added: REPLACEME added: v8.4.0
--> -->
* `options` {Object} * `options` {Object}
@ -460,7 +460,7 @@ session.shutdown({
#### http2session.socket #### http2session.socket
<!-- YAML <!-- YAML
added: REPLACEME added: v8.4.0
--> -->
* Value: {net.Socket|tls.TLSSocket} * Value: {net.Socket|tls.TLSSocket}
@ -474,7 +474,7 @@ details.
#### http2session.state #### http2session.state
<!-- YAML <!-- YAML
added: REPLACEME added: v8.4.0
--> -->
* Value: {Object} * Value: {Object}
@ -492,7 +492,7 @@ An object describing the current status of this `Http2Session`.
#### http2session.priority(stream, options) #### http2session.priority(stream, options)
<!-- YAML <!-- YAML
added: REPLACEME added: v8.4.0
--> -->
* `stream` {Http2Stream} * `stream` {Http2Stream}
@ -514,7 +514,7 @@ Updates the priority for the given `Http2Stream` instance.
#### http2session.settings(settings) #### http2session.settings(settings)
<!-- YAML <!-- YAML
added: REPLACEME added: v8.4.0
--> -->
* `settings` {[Settings Object][]} * `settings` {[Settings Object][]}
@ -534,7 +534,7 @@ pending.
#### http2session.type #### http2session.type
<!-- YAML <!-- YAML
added: REPLACEME added: v8.4.0
--> -->
* Value: {number} * Value: {number}
@ -546,7 +546,7 @@ client.
### Class: Http2Stream ### Class: Http2Stream
<!-- YAML <!-- YAML
added: REPLACEME added: v8.4.0
--> -->
* Extends: {Duplex} * Extends: {Duplex}
@ -619,7 +619,7 @@ destroyed.
#### Event: 'aborted' #### Event: 'aborted'
<!-- YAML <!-- YAML
added: REPLACEME added: v8.4.0
--> -->
The `'aborted'` event is emitted whenever a `Http2Stream` instance is The `'aborted'` event is emitted whenever a `Http2Stream` instance is
@ -630,7 +630,7 @@ writable side has not been ended.
#### Event: 'error' #### Event: 'error'
<!-- YAML <!-- YAML
added: REPLACEME added: v8.4.0
--> -->
The `'error'` event is emitted when an error occurs during the processing of The `'error'` event is emitted when an error occurs during the processing of
@ -638,7 +638,7 @@ an `Http2Stream`.
#### Event: 'frameError' #### Event: 'frameError'
<!-- YAML <!-- YAML
added: REPLACEME added: v8.4.0
--> -->
The `'frameError'` event is emitted when an error occurs while attempting to The `'frameError'` event is emitted when an error occurs while attempting to
@ -649,7 +649,7 @@ error code. The `Http2Stream` instance will be destroyed immediately after the
#### Event: 'streamClosed' #### Event: 'streamClosed'
<!-- YAML <!-- YAML
added: REPLACEME added: v8.4.0
--> -->
The `'streamClosed'` event is emitted when the `Http2Stream` is destroyed. Once The `'streamClosed'` event is emitted when the `Http2Stream` is destroyed. Once
@ -661,7 +661,7 @@ code specified when closing the stream. If the code is any value other than
#### Event: 'timeout' #### Event: 'timeout'
<!-- YAML <!-- YAML
added: REPLACEME added: v8.4.0
--> -->
The `'timeout'` event is emitted after no activity is received for this The `'timeout'` event is emitted after no activity is received for this
@ -670,7 +670,7 @@ The `'timeout'` event is emitted after no activity is received for this
#### Event: 'trailers' #### Event: 'trailers'
<!-- YAML <!-- YAML
added: REPLACEME added: v8.4.0
--> -->
The `'trailers'` event is emitted when a block of headers associated with The `'trailers'` event is emitted when a block of headers associated with
@ -685,7 +685,7 @@ stream.on('trailers', (headers, flags) => {
#### http2stream.aborted #### http2stream.aborted
<!-- YAML <!-- YAML
added: REPLACEME added: v8.4.0
--> -->
* Value: {boolean} * Value: {boolean}
@ -695,7 +695,7 @@ the `'aborted'` event will have been emitted.
#### http2stream.destroyed #### http2stream.destroyed
<!-- YAML <!-- YAML
added: REPLACEME added: v8.4.0
--> -->
* Value: {boolean} * Value: {boolean}
@ -705,7 +705,7 @@ usable.
#### http2stream.priority(options) #### http2stream.priority(options)
<!-- YAML <!-- YAML
added: REPLACEME added: v8.4.0
--> -->
* `options` {Object} * `options` {Object}
@ -726,7 +726,7 @@ Updates the priority for this `Http2Stream` instance.
#### http2stream.rstCode #### http2stream.rstCode
<!-- YAML <!-- YAML
added: REPLACEME added: v8.4.0
--> -->
* Value: {number} * Value: {number}
@ -738,7 +738,7 @@ calling `http2stream.rstStream()`, or `http2stream.destroy()`. Will be
#### http2stream.rstStream(code) #### http2stream.rstStream(code)
<!-- YAML <!-- YAML
added: REPLACEME added: v8.4.0
--> -->
* code {number} Unsigned 32-bit integer identifying the error code. Defaults to * code {number} Unsigned 32-bit integer identifying the error code. Defaults to
@ -750,7 +750,7 @@ Sends an `RST_STREAM` frame to the connected HTTP/2 peer, causing this
#### http2stream.rstWithNoError() #### http2stream.rstWithNoError()
<!-- YAML <!-- YAML
added: REPLACEME added: v8.4.0
--> -->
* Returns: {undefined} * Returns: {undefined}
@ -759,7 +759,7 @@ Shortcut for `http2stream.rstStream()` using error code `0x00` (No Error).
#### http2stream.rstWithProtocolError() { #### http2stream.rstWithProtocolError() {
<!-- YAML <!-- YAML
added: REPLACEME added: v8.4.0
--> -->
* Returns: {undefined} * Returns: {undefined}
@ -768,7 +768,7 @@ Shortcut for `http2stream.rstStream()` using error code `0x01` (Protocol Error).
#### http2stream.rstWithCancel() { #### http2stream.rstWithCancel() {
<!-- YAML <!-- YAML
added: REPLACEME added: v8.4.0
--> -->
* Returns: {undefined} * Returns: {undefined}
@ -777,7 +777,7 @@ Shortcut for `http2stream.rstStream()` using error code `0x08` (Cancel).
#### http2stream.rstWithRefuse() { #### http2stream.rstWithRefuse() {
<!-- YAML <!-- YAML
added: REPLACEME added: v8.4.0
--> -->
* Returns: {undefined} * Returns: {undefined}
@ -786,7 +786,7 @@ Shortcut for `http2stream.rstStream()` using error code `0x07` (Refused Stream).
#### http2stream.rstWithInternalError() { #### http2stream.rstWithInternalError() {
<!-- YAML <!-- YAML
added: REPLACEME added: v8.4.0
--> -->
* Returns: {undefined} * Returns: {undefined}
@ -795,7 +795,7 @@ Shortcut for `http2stream.rstStream()` using error code `0x02` (Internal Error).
#### http2stream.session #### http2stream.session
<!-- YAML <!-- YAML
added: REPLACEME added: v8.4.0
--> -->
* Value: {Http2Sesssion} * Value: {Http2Sesssion}
@ -805,7 +805,7 @@ value will be `undefined` after the `Http2Stream` instance is destroyed.
#### http2stream.setTimeout(msecs, callback) #### http2stream.setTimeout(msecs, callback)
<!-- YAML <!-- YAML
added: REPLACEME added: v8.4.0
--> -->
* `msecs` {number} * `msecs` {number}
@ -824,7 +824,7 @@ req.setTimeout(5000, () => req.rstStreamWithCancel());
#### http2stream.state #### http2stream.state
<!-- YAML <!-- YAML
added: REPLACEME added: v8.4.0
--> -->
* Value: {Object} * Value: {Object}
@ -839,7 +839,7 @@ A current state of this `Http2Stream`.
### Class: ClientHttp2Stream ### Class: ClientHttp2Stream
<!-- YAML <!-- YAML
added: REPLACEME added: v8.4.0
--> -->
* Extends {Http2Stream} * Extends {Http2Stream}
@ -851,7 +851,7 @@ the client.
#### Event: 'headers' #### Event: 'headers'
<!-- YAML <!-- YAML
added: REPLACEME added: v8.4.0
--> -->
The `'headers'` event is emitted when an additional block of headers is received The `'headers'` event is emitted when an additional block of headers is received
@ -867,7 +867,7 @@ stream.on('headers', (headers, flags) => {
#### Event: 'push' #### Event: 'push'
<!-- YAML <!-- YAML
added: REPLACEME added: v8.4.0
--> -->
The `'push'` event is emitted when response headers for a Server Push stream The `'push'` event is emitted when response headers for a Server Push stream
@ -882,7 +882,7 @@ stream.on('push', (headers, flags) => {
#### Event: 'response' #### Event: 'response'
<!-- YAML <!-- YAML
added: REPLACEME added: v8.4.0
--> -->
The `'response'` event is emitted when a response `HEADERS` frame has been The `'response'` event is emitted when a response `HEADERS` frame has been
@ -903,7 +903,7 @@ req.on('response', (headers, flags) => {
### Class: ServerHttp2Stream ### Class: ServerHttp2Stream
<!-- YAML <!-- YAML
added: REPLACEME added: v8.4.0
--> -->
* Extends: {Http2Stream} * Extends: {Http2Stream}
@ -915,7 +915,7 @@ provide additional methods such as `http2stream.pushStream()` and
#### http2stream.additionalHeaders(headers) #### http2stream.additionalHeaders(headers)
<!-- YAML <!-- YAML
added: REPLACEME added: v8.4.0
--> -->
* `headers` {[Headers Object][]} * `headers` {[Headers Object][]}
@ -925,7 +925,7 @@ Sends an additional informational `HEADERS` frame to the connected HTTP/2 peer.
#### http2stream.headersSent #### http2stream.headersSent
<!-- YAML <!-- YAML
added: REPLACEME added: v8.4.0
--> -->
* Value: {boolean} * Value: {boolean}
@ -934,7 +934,7 @@ Boolean (read-only). True if headers were sent, false otherwise.
#### http2stream.pushAllowed #### http2stream.pushAllowed
<!-- YAML <!-- YAML
added: REPLACEME added: v8.4.0
--> -->
* Value: {boolean} * Value: {boolean}
@ -946,7 +946,7 @@ accepts push streams, `false` otherwise. Settings are the same for every
#### http2stream.pushStream(headers[, options], callback) #### http2stream.pushStream(headers[, options], callback)
<!-- YAML <!-- YAML
added: REPLACEME added: v8.4.0
--> -->
* `headers` {[Headers Object][]} * `headers` {[Headers Object][]}
@ -982,7 +982,7 @@ server.on('stream', (stream) => {
#### http2stream.respond([headers[, options]]) #### http2stream.respond([headers[, options]])
<!-- YAML <!-- YAML
added: REPLACEME added: v8.4.0
--> -->
* `headers` {[Headers Object][]} * `headers` {[Headers Object][]}
@ -1027,7 +1027,7 @@ fields.
#### http2stream.respondWithFD(fd[, headers[, options]]) #### http2stream.respondWithFD(fd[, headers[, options]])
<!-- YAML <!-- YAML
added: REPLACEME added: v8.4.0
--> -->
* `fd` {number} A readable file descriptor * `fd` {number} A readable file descriptor
@ -1111,7 +1111,7 @@ fields.
#### http2stream.respondWithFile(path[, headers[, options]]) #### http2stream.respondWithFile(path[, headers[, options]])
<!-- YAML <!-- YAML
added: REPLACEME added: v8.4.0
--> -->
* `path` {string|Buffer|URL} * `path` {string|Buffer|URL}
@ -1203,14 +1203,14 @@ fields.
### Class: Http2Server ### Class: Http2Server
<!-- YAML <!-- YAML
added: REPLACEME added: v8.4.0
--> -->
* Extends: {net.Server} * Extends: {net.Server}
#### Event: 'sessionError' #### Event: 'sessionError'
<!-- YAML <!-- YAML
added: REPLACEME added: v8.4.0
--> -->
The `'sessionError'` event is emitted when an `'error'` event is emitted by The `'sessionError'` event is emitted when an `'error'` event is emitted by
@ -1219,7 +1219,7 @@ an `Http2Session` object. If no listener is registered for this event, an
#### Event: 'socketError' #### Event: 'socketError'
<!-- YAML <!-- YAML
added: REPLACEME added: v8.4.0
--> -->
The `'socketError'` event is emitted when a `'socketError'` event is emitted by The `'socketError'` event is emitted when a `'socketError'` event is emitted by
@ -1227,7 +1227,7 @@ an `Http2Session` associated with the server.
#### Event: 'stream' #### Event: 'stream'
<!-- YAML <!-- YAML
added: REPLACEME added: v8.4.0
--> -->
The `'stream'` event is emitted when a `'stream'` event has been emitted by The `'stream'` event is emitted when a `'stream'` event has been emitted by
@ -1258,7 +1258,7 @@ server.on('stream', (stream, headers, flags) => {
#### Event: 'request' #### Event: 'request'
<!-- YAML <!-- YAML
added: REPLACEME added: v8.4.0
--> -->
* `request` {http2.Http2ServerRequest} * `request` {http2.Http2ServerRequest}
@ -1269,7 +1269,7 @@ per session. See the [Compatibility API](compatiblity-api).
#### Event: 'timeout' #### Event: 'timeout'
<!-- YAML <!-- YAML
added: REPLACEME added: v8.4.0
--> -->
The `'timeout'` event is emitted when there is no activity on the Server for The `'timeout'` event is emitted when there is no activity on the Server for
@ -1277,14 +1277,14 @@ a given number of milliseconds set using `http2server.setTimeout()`.
### Class: Http2SecureServer ### Class: Http2SecureServer
<!-- YAML <!-- YAML
added: REPLACEME added: v8.4.0
--> -->
* Extends: {tls.Server} * Extends: {tls.Server}
#### Event: 'sessionError' #### Event: 'sessionError'
<!-- YAML <!-- YAML
added: REPLACEME added: v8.4.0
--> -->
The `'sessionError'` event is emitted when an `'error'` event is emitted by The `'sessionError'` event is emitted when an `'error'` event is emitted by
@ -1293,7 +1293,7 @@ an `Http2Session` object. If no listener is registered for this event, an
#### Event: 'socketError' #### Event: 'socketError'
<!-- YAML <!-- YAML
added: REPLACEME added: v8.4.0
--> -->
The `'socketError'` event is emitted when a `'socketError'` event is emitted by The `'socketError'` event is emitted when a `'socketError'` event is emitted by
@ -1301,7 +1301,7 @@ an `Http2Session` associated with the server.
#### Event: 'unknownProtocol' #### Event: 'unknownProtocol'
<!-- YAML <!-- YAML
added: REPLACEME added: v8.4.0
--> -->
The `'unknownProtocol'` event is emitted when a connecting client fails to The `'unknownProtocol'` event is emitted when a connecting client fails to
@ -1311,7 +1311,7 @@ the connection is terminated. See the
#### Event: 'stream' #### Event: 'stream'
<!-- YAML <!-- YAML
added: REPLACEME added: v8.4.0
--> -->
The `'stream'` event is emitted when a `'stream'` event has been emitted by The `'stream'` event is emitted when a `'stream'` event has been emitted by
@ -1344,7 +1344,7 @@ server.on('stream', (stream, headers, flags) => {
#### Event: 'request' #### Event: 'request'
<!-- YAML <!-- YAML
added: REPLACEME added: v8.4.0
--> -->
* `request` {http2.Http2ServerRequest} * `request` {http2.Http2ServerRequest}
@ -1355,12 +1355,12 @@ per session. See the [Compatibility API](compatiblity-api).
#### Event: 'timeout' #### Event: 'timeout'
<!-- YAML <!-- YAML
added: REPLACEME added: v8.4.0
--> -->
### http2.createServer(options[, onRequestHandler]) ### http2.createServer(options[, onRequestHandler])
<!-- YAML <!-- YAML
added: REPLACEME added: v8.4.0
--> -->
* `options` {Object} * `options` {Object}
@ -1415,7 +1415,7 @@ server.listen(80);
### http2.createSecureServer(options[, onRequestHandler]) ### http2.createSecureServer(options[, onRequestHandler])
<!-- YAML <!-- YAML
added: REPLACEME added: v8.4.0
--> -->
* `options` {Object} * `options` {Object}
@ -1481,7 +1481,7 @@ server.listen(80);
### http2.connect(authority[, options][, listener]) ### http2.connect(authority[, options][, listener])
<!-- YAML <!-- YAML
added: REPLACEME added: v8.4.0
--> -->
* `authority` {string|URL} * `authority` {string|URL}
@ -1532,7 +1532,7 @@ client.destroy();
### http2.constants ### http2.constants
<!-- YAML <!-- YAML
added: REPLACEME added: v8.4.0
--> -->
#### Error Codes for RST_STREAM and GOAWAY #### Error Codes for RST_STREAM and GOAWAY
@ -1560,7 +1560,7 @@ a given number of milliseconds set using `http2server.setTimeout()`.
### http2.getDefaultSettings() ### http2.getDefaultSettings()
<!-- YAML <!-- YAML
added: REPLACEME added: v8.4.0
--> -->
* Returns: {[Settings Object][]} * Returns: {[Settings Object][]}
@ -1571,7 +1571,7 @@ so instances returned may be safely modified for use.
### http2.getPackedSettings(settings) ### http2.getPackedSettings(settings)
<!-- YAML <!-- YAML
added: REPLACEME added: v8.4.0
--> -->
* `settings` {[Settings Object][]} * `settings` {[Settings Object][]}
@ -1592,7 +1592,7 @@ console.log(packed.toString('base64'));
### http2.getUnpackedSettings(buf) ### http2.getUnpackedSettings(buf)
<!-- YAML <!-- YAML
added: REPLACEME added: v8.4.0
--> -->
* `buf` {Buffer|Uint8Array} The packed settings * `buf` {Buffer|Uint8Array} The packed settings
@ -1898,7 +1898,7 @@ HTTP/2.
### Class: http2.Http2ServerRequest ### Class: http2.Http2ServerRequest
<!-- YAML <!-- YAML
added: REPLACEME added: v8.4.0
--> -->
A `Http2ServerRequest` object is created by [`http2.Server`][] or A `Http2ServerRequest` object is created by [`http2.Server`][] or
@ -1911,7 +1911,7 @@ following additional events, methods, and properties.
#### Event: 'aborted' #### Event: 'aborted'
<!-- YAML <!-- YAML
added: REPLACEME added: v8.4.0
--> -->
The `'aborted'` event is emitted whenever a `Http2ServerRequest` instance is The `'aborted'` event is emitted whenever a `Http2ServerRequest` instance is
@ -1922,7 +1922,7 @@ abnormally aborted in mid-communication.
#### Event: 'close' #### Event: 'close'
<!-- YAML <!-- YAML
added: REPLACEME added: v8.4.0
--> -->
Indicates that the underlying [`Http2Stream`][] was closed. Indicates that the underlying [`Http2Stream`][] was closed.
@ -1930,7 +1930,7 @@ Just like `'end'`, this event occurs only once per response.
#### request.destroy([error]) #### request.destroy([error])
<!-- YAML <!-- YAML
added: REPLACEME added: v8.4.0
--> -->
* `error` {Error} * `error` {Error}
@ -1943,7 +1943,7 @@ It does nothing if the stream was already destroyed.
#### request.headers #### request.headers
<!-- YAML <!-- YAML
added: REPLACEME added: v8.4.0
--> -->
* {Object} * {Object}
@ -1966,7 +1966,7 @@ See [Headers Object][].
### request.httpVersion ### request.httpVersion
<!-- YAML <!-- YAML
added: REPLACEME added: v8.4.0
--> -->
* {string} * {string}
@ -1980,7 +1980,7 @@ Also `message.httpVersionMajor` is the first integer and
#### request.method #### request.method
<!-- YAML <!-- YAML
added: REPLACEME added: v8.4.0
--> -->
* {string} * {string}
@ -1990,7 +1990,7 @@ The request method as a string. Read only. Example:
#### request.rawHeaders #### request.rawHeaders
<!-- YAML <!-- YAML
added: REPLACEME added: v8.4.0
--> -->
* {Array} * {Array}
@ -2019,7 +2019,7 @@ console.log(request.rawHeaders);
#### request.rawTrailers #### request.rawTrailers
<!-- YAML <!-- YAML
added: REPLACEME added: v8.4.0
--> -->
* {Array} * {Array}
@ -2029,7 +2029,7 @@ received. Only populated at the `'end'` event.
#### request.setTimeout(msecs, callback) #### request.setTimeout(msecs, callback)
<!-- YAML <!-- YAML
added: REPLACEME added: v8.4.0
--> -->
* `msecs` {number} * `msecs` {number}
@ -2041,7 +2041,7 @@ Returns `request`.
#### request.socket #### request.socket
<!-- YAML <!-- YAML
added: REPLACEME added: v8.4.0
--> -->
* {net.Socket} * {net.Socket}
@ -2056,7 +2056,7 @@ data transfers are managed by HTTP/2 and data might be lost.
#### request.stream #### request.stream
<!-- YAML <!-- YAML
added: REPLACEME added: v8.4.0
--> -->
* {http2.Http2Stream} * {http2.Http2Stream}
@ -2065,7 +2065,7 @@ The [`Http2Stream`][] object backing the request.
#### request.trailers #### request.trailers
<!-- YAML <!-- YAML
added: REPLACEME added: v8.4.0
--> -->
* {Object} * {Object}
@ -2074,7 +2074,7 @@ The request/response trailers object. Only populated at the `'end'` event.
#### request.url #### request.url
<!-- YAML <!-- YAML
added: REPLACEME added: v8.4.0
--> -->
* {string} * {string}
@ -2141,7 +2141,7 @@ Url {
### Class: http2.Http2ServerResponse ### Class: http2.Http2ServerResponse
<!-- YAML <!-- YAML
added: REPLACEME added: v8.4.0
--> -->
This object is created internally by an HTTP server--not by the user. It is This object is created internally by an HTTP server--not by the user. It is
@ -2152,7 +2152,7 @@ interface. This is an [`EventEmitter`][] with the following events:
### Event: 'close' ### Event: 'close'
<!-- YAML <!-- YAML
added: REPLACEME added: v8.4.0
--> -->
Indicates that the underlying [`Http2Stream`]() was terminated before Indicates that the underlying [`Http2Stream`]() was terminated before
@ -2160,7 +2160,7 @@ Indicates that the underlying [`Http2Stream`]() was terminated before
### Event: 'finish' ### Event: 'finish'
<!-- YAML <!-- YAML
added: REPLACEME added: v8.4.0
--> -->
Emitted when the response has been sent. More specifically, this event is Emitted when the response has been sent. More specifically, this event is
@ -2172,7 +2172,7 @@ After this event, no more events will be emitted on the response object.
### response.addTrailers(headers) ### response.addTrailers(headers)
<!-- YAML <!-- YAML
added: REPLACEME added: v8.4.0
--> -->
* `headers` {Object} * `headers` {Object}
@ -2185,7 +2185,7 @@ will result in a [`TypeError`][] being thrown.
### response.connection ### response.connection
<!-- YAML <!-- YAML
added: REPLACEME added: v8.4.0
--> -->
* {net.Socket} * {net.Socket}
@ -2194,7 +2194,7 @@ See [`response.socket`][].
### response.end([data][, encoding][, callback]) ### response.end([data][, encoding][, callback])
<!-- YAML <!-- YAML
added: REPLACEME added: v8.4.0
--> -->
* `data` {string|Buffer} * `data` {string|Buffer}
@ -2213,7 +2213,7 @@ is finished.
### response.finished ### response.finished
<!-- YAML <!-- YAML
added: REPLACEME added: v8.4.0
--> -->
* {boolean} * {boolean}
@ -2223,7 +2223,7 @@ as `false`. After [`response.end()`][] executes, the value will be `true`.
### response.getHeader(name) ### response.getHeader(name)
<!-- YAML <!-- YAML
added: REPLACEME added: v8.4.0
--> -->
* `name` {string} * `name` {string}
@ -2240,7 +2240,7 @@ const contentType = response.getHeader('content-type');
### response.getHeaderNames() ### response.getHeaderNames()
<!-- YAML <!-- YAML
added: REPLACEME added: v8.4.0
--> -->
* Returns: {Array} * Returns: {Array}
@ -2260,7 +2260,7 @@ const headerNames = response.getHeaderNames();
### response.getHeaders() ### response.getHeaders()
<!-- YAML <!-- YAML
added: REPLACEME added: v8.4.0
--> -->
* Returns: {Object} * Returns: {Object}
@ -2288,7 +2288,7 @@ const headers = response.getHeaders();
### response.hasHeader(name) ### response.hasHeader(name)
<!-- YAML <!-- YAML
added: REPLACEME added: v8.4.0
--> -->
* `name` {string} * `name` {string}
@ -2305,7 +2305,7 @@ const hasContentType = response.hasHeader('content-type');
### response.headersSent ### response.headersSent
<!-- YAML <!-- YAML
added: REPLACEME added: v8.4.0
--> -->
* {boolean} * {boolean}
@ -2314,7 +2314,7 @@ Boolean (read-only). True if headers were sent, false otherwise.
### response.removeHeader(name) ### response.removeHeader(name)
<!-- YAML <!-- YAML
added: REPLACEME added: v8.4.0
--> -->
* `name` {string} * `name` {string}
@ -2329,7 +2329,7 @@ response.removeHeader('Content-Encoding');
### response.sendDate ### response.sendDate
<!-- YAML <!-- YAML
added: REPLACEME added: v8.4.0
--> -->
* {boolean} * {boolean}
@ -2342,7 +2342,7 @@ in responses.
### response.setHeader(name, value) ### response.setHeader(name, value)
<!-- YAML <!-- YAML
added: REPLACEME added: v8.4.0
--> -->
* `name` {string} * `name` {string}
@ -2383,7 +2383,7 @@ const server = http2.createServer((req, res) => {
### response.setTimeout(msecs[, callback]) ### response.setTimeout(msecs[, callback])
<!-- YAML <!-- YAML
added: REPLACEME added: v8.4.0
--> -->
* `msecs` {number} * `msecs` {number}
@ -2402,7 +2402,7 @@ Returns `response`.
### response.socket ### response.socket
<!-- YAML <!-- YAML
added: REPLACEME added: v8.4.0
--> -->
* {net.Socket} * {net.Socket}
@ -2426,7 +2426,7 @@ const server = http2.createServer((req, res) => {
### response.statusCode ### response.statusCode
<!-- YAML <!-- YAML
added: REPLACEME added: v8.4.0
--> -->
* {number} * {number}
@ -2446,7 +2446,7 @@ status code which was sent out.
### response.statusMessage ### response.statusMessage
<!-- YAML <!-- YAML
added: REPLACEME added: v8.4.0
--> -->
* {string} * {string}
@ -2456,7 +2456,7 @@ an empty string.
#### response.stream #### response.stream
<!-- YAML <!-- YAML
added: REPLACEME added: v8.4.0
--> -->
* {http2.Http2Stream} * {http2.Http2Stream}
@ -2465,7 +2465,7 @@ The [`Http2Stream`][] object backing the response.
### response.write(chunk[, encoding][, callback]) ### response.write(chunk[, encoding][, callback])
<!-- YAML <!-- YAML
added: REPLACEME added: v8.4.0
--> -->
* `chunk` {string|Buffer} * `chunk` {string|Buffer}
@ -2503,7 +2503,7 @@ buffer. Returns `false` if all or part of the data was queued in user memory.
### response.writeContinue() ### response.writeContinue()
<!-- YAML <!-- YAML
added: REPLACEME added: v8.4.0
--> -->
Throws an error as the `'continue'` flow is not current implemented. Added for Throws an error as the `'continue'` flow is not current implemented. Added for
@ -2511,7 +2511,7 @@ parity with [HTTP/1]().
### response.writeHead(statusCode[, statusMessage][, headers]) ### response.writeHead(statusCode[, statusMessage][, headers])
<!-- YAML <!-- YAML
added: REPLACEME added: v8.4.0
--> -->
* `statusCode` {number} * `statusCode` {number}
@ -2567,7 +2567,7 @@ will result in a [`TypeError`][] being thrown.
### response.createPushResponse(headers, callback) ### response.createPushResponse(headers, callback)
<!-- YAML <!-- YAML
added: REPLACEME added: v8.4.0
--> -->
Call [`stream.pushStream()`][] with the given headers, and wraps the Call [`stream.pushStream()`][] with the given headers, and wraps the

10
doc/api/n-api.md

@ -1374,7 +1374,7 @@ JavaScript DataView Objects are described in
### Functions to convert from C types to N-API ### Functions to convert from C types to N-API
#### *napi_create_int32* #### *napi_create_int32*
<!-- YAML <!-- YAML
added: REPLACEME added: v8.4.0
--> -->
```C ```C
napi_status napi_create_int32(napi_env env, int32_t value, napi_value* result) napi_status napi_create_int32(napi_env env, int32_t value, napi_value* result)
@ -1395,7 +1395,7 @@ of the ECMAScript Language Specification.
#### *napi_create_uint32* #### *napi_create_uint32*
<!-- YAML <!-- YAML
added: REPLACEME added: v8.4.0
--> -->
```C ```C
napi_status napi_create_uint32(napi_env env, uint32_t value, napi_value* result) napi_status napi_create_uint32(napi_env env, uint32_t value, napi_value* result)
@ -1416,7 +1416,7 @@ of the ECMAScript Language Specification.
#### *napi_create_int64* #### *napi_create_int64*
<!-- YAML <!-- YAML
added: REPLACEME added: v8.4.0
--> -->
```C ```C
napi_status napi_create_int64(napi_env env, int64_t value, napi_value* result) napi_status napi_create_int64(napi_env env, int64_t value, napi_value* result)
@ -1443,7 +1443,7 @@ outside the range of
#### *napi_create_double* #### *napi_create_double*
<!-- YAML <!-- YAML
added: REPLACEME added: v8.4.0
--> -->
```C ```C
napi_status napi_create_double(napi_env env, double value, napi_value* result) napi_status napi_create_double(napi_env env, double value, napi_value* result)
@ -3287,7 +3287,7 @@ callback invocation, even if it has been successfully cancelled.
### napi_get_node_version ### napi_get_node_version
<!-- YAML <!-- YAML
added: REPLACEME added: v8.4.0
--> -->
```C ```C

2
doc/api/stream.md

@ -1742,7 +1742,7 @@ constructor and implement *both* the `readable._read()` and
#### new stream.Duplex(options) #### new stream.Duplex(options)
<!-- YAML <!-- YAML
changes: changes:
- version: REPLACEME - version: v8.4.0
pr-url: https://github.com/nodejs/node/pull/14636 pr-url: https://github.com/nodejs/node/pull/14636
description: The `readableHighWaterMark` and `writableHighWaterMark` options description: The `readableHighWaterMark` and `writableHighWaterMark` options
are supported now. are supported now.

2
doc/api/tls.md

@ -554,7 +554,7 @@ when creating the `tls.TLSSocket` instance, otherwise `false`.
### tlsSocket.disableRenegotiation() ### tlsSocket.disableRenegotiation()
<!-- YAML <!-- YAML
added: REPLACEME added: v8.4.0
--> -->
Disables TLS renegotiation for this `TLSSocket` instance. Once called, attempts Disables TLS renegotiation for this `TLSSocket` instance. Once called, attempts

2
doc/api/util.md

@ -151,7 +151,7 @@ property take precedence over `--trace-deprecation` and
<!-- YAML <!-- YAML
added: v0.5.3 added: v0.5.3
changes: changes:
- version: REPLACEME - version: v8.4.0
pr-url: https://github.com/nodejs/node/pull/14558 pr-url: https://github.com/nodejs/node/pull/14558
description: The `%o` and `%O` specifiers are supported now. description: The `%o` and `%O` specifiers are supported now.
--> -->

130
doc/changelogs/CHANGELOG_V8.md

@ -6,6 +6,7 @@
</tr> </tr>
<tr> <tr>
<td> <td>
<a href="#8.4.0">8.4.0</a><br/>
<a href="#8.3.0">8.3.0</a><br/> <a href="#8.3.0">8.3.0</a><br/>
<a href="#8.2.1">8.2.1</a><br/> <a href="#8.2.1">8.2.1</a><br/>
<a href="#8.2.0">8.2.0</a><br/> <a href="#8.2.0">8.2.0</a><br/>
@ -29,6 +30,135 @@
* [io.js](CHANGELOG_IOJS.md) * [io.js](CHANGELOG_IOJS.md)
* [Archive](CHANGELOG_ARCHIVE.md) * [Archive](CHANGELOG_ARCHIVE.md)
<a id="8.4.0"></a>
## 2017-08-15, Version 8.4.0 (Current), @addaleax
### Notable changes
* **HTTP2**
* Experimental support for the built-in `http2` has been added via the
`--expose-http2` flag.
[#14239](https://github.com/nodejs/node/pull/14239)
* **Inspector**
* `require()` is available in the inspector console now.
[#8837](https://github.com/nodejs/node/pull/8837)
* Multiple contexts, as created by the `vm` module, are supported now.
[#14465](https://github.com/nodejs/node/pull/14465)
* **N-API**
* New APIs for creating number values have been introduced.
[#14573](https://github.com/nodejs/node/pull/14573)
* **Stream**
* For `Duplex` streams, the high water mark option can now be set
independently for the readable and the writable side.
[#14636](https://github.com/nodejs/node/pull/14636)
* **Util**
* `util.format` now supports the `%o` and `%O` specifiers for printing
objects.
[#14558](https://github.com/nodejs/node/pull/14558)
### Commits
* [[`a6539ece2c`](https://github.com/nodejs/node/commit/a6539ece2c)] - **assert**: optimize code path for deepEqual Maps (Ruben Bridgewater) [#14501](https://github.com/nodejs/node/pull/14501)
* [[`2716b626b0`](https://github.com/nodejs/node/commit/2716b626b0)] - **async_hooks**: CHECK that resource is not empty (Anna Henningsen) [#14694](https://github.com/nodejs/node/pull/14694)
* [[`b3c1c6ff7f`](https://github.com/nodejs/node/commit/b3c1c6ff7f)] - **benchmark**: fix and extend assert benchmarks (Ruben Bridgewater) [#14147](https://github.com/nodejs/node/pull/14147)
* [[`139b08863e`](https://github.com/nodejs/node/commit/139b08863e)] - **benchmark**: Correct constructor for freelist (Gareth Ellis) [#14627](https://github.com/nodejs/node/pull/14627)
* [[`574cc379b9`](https://github.com/nodejs/node/commit/574cc379b9)] - **benchmark**: remove unused parameters (nishijayaraj) [#14640](https://github.com/nodejs/node/pull/14640)
* [[`fef2aa7e27`](https://github.com/nodejs/node/commit/fef2aa7e27)] - **(SEMVER-MINOR)** **deps**: add nghttp2 dependency (James M Snell) [#14239](https://github.com/nodejs/node/pull/14239)
* [[`2d806f4f71`](https://github.com/nodejs/node/commit/2d806f4f71)] - **deps**: cherry-pick f19b889 from V8 upstream (Alexey Kozyatinskiy) [#14465](https://github.com/nodejs/node/pull/14465)
* [[`dd521d0a28`](https://github.com/nodejs/node/commit/dd521d0a28)] - **deps,tools**: add missing nghttp2 license (Anna Henningsen) [#14806](https://github.com/nodejs/node/pull/14806)
* [[`621c03acfe`](https://github.com/nodejs/node/commit/621c03acfe)] - **doc**: delint (Refael Ackermann) [#14707](https://github.com/nodejs/node/pull/14707)
* [[`230cb55574`](https://github.com/nodejs/node/commit/230cb55574)] - **doc**: fix header level typo (Refael Ackermann) [#14707](https://github.com/nodejs/node/pull/14707)
* [[`af85b6e058`](https://github.com/nodejs/node/commit/af85b6e058)] - **doc**: fix http2 sample code for http2.md (Keita Akutsu) [#14667](https://github.com/nodejs/node/pull/14667)
* [[`1e7ddb200f`](https://github.com/nodejs/node/commit/1e7ddb200f)] - **doc**: explain browser support of http/2 without SSL (Gil Tayar) [#14670](https://github.com/nodejs/node/pull/14670)
* [[`be716d00cc`](https://github.com/nodejs/node/commit/be716d00cc)] - **(SEMVER-MINOR)** **doc**: include http2.md in all.md (James M Snell) [#14239](https://github.com/nodejs/node/pull/14239)
* [[`9e51802f53`](https://github.com/nodejs/node/commit/9e51802f53)] - **doc**: add missing `changes:` metadata for util (Anna Henningsen) [#14810](https://github.com/nodejs/node/pull/14810)
* [[`4811fea553`](https://github.com/nodejs/node/commit/4811fea553)] - **doc**: add missing `changes:` metadata for streams (Anna Henningsen) [#14810](https://github.com/nodejs/node/pull/14810)
* [[`20fb69063a`](https://github.com/nodejs/node/commit/20fb69063a)] - **doc**: fix docs style in util.md (Daijiro Wachi) [#14711](https://github.com/nodejs/node/pull/14711)
* [[`0de63e6888`](https://github.com/nodejs/node/commit/0de63e6888)] - **doc**: fix docs style in intl.md (Daijiro Wachi) [#14711](https://github.com/nodejs/node/pull/14711)
* [[`ee2ae0f30b`](https://github.com/nodejs/node/commit/ee2ae0f30b)] - **doc**: expanded description of buffer.slice (Vishal Bisht) [#14720](https://github.com/nodejs/node/pull/14720)
* [[`9888bb1238`](https://github.com/nodejs/node/commit/9888bb1238)] - **doc**: improve fs.read() doc text (Rich Trott) [#14631](https://github.com/nodejs/node/pull/14631)
* [[`d604173a66`](https://github.com/nodejs/node/commit/d604173a66)] - **doc**: clarify the position argument for fs.read (dcharbonnier) [#14631](https://github.com/nodejs/node/pull/14631)
* [[`d3b072276b`](https://github.com/nodejs/node/commit/d3b072276b)] - **doc**: add docs for AssertionError (Mandeep Singh) [#14261](https://github.com/nodejs/node/pull/14261)
* [[`4e15a6b76a`](https://github.com/nodejs/node/commit/4e15a6b76a)] - **doc**: fix order of AtExit callbacks in addons.md (Daniel Bevenius) [#14048](https://github.com/nodejs/node/pull/14048)
* [[`e07dfffad0`](https://github.com/nodejs/node/commit/e07dfffad0)] - **doc**: remove undef NDEBUG from addons.md (Daniel Bevenius) [#14048](https://github.com/nodejs/node/pull/14048)
* [[`c5ee34e39b`](https://github.com/nodejs/node/commit/c5ee34e39b)] - **encoding**: rudimentary TextDecoder support w/o ICU (Timothy Gu) [#14489](https://github.com/nodejs/node/pull/14489)
* [[`e0001dc601`](https://github.com/nodejs/node/commit/e0001dc601)] - **(SEMVER-MINOR)** **http**: move utcDate to internal/http.js (James M Snell) [#14239](https://github.com/nodejs/node/pull/14239)
* [[`1d40850338`](https://github.com/nodejs/node/commit/1d40850338)] - **http2**: fix \[kInspect\]() output for Http2Stream (Evan Lucas) [#14753](https://github.com/nodejs/node/pull/14753)
* [[`c5740f9111`](https://github.com/nodejs/node/commit/c5740f9111)] - **http2**: name padding buffer fields (Anna Henningsen) [#14744](https://github.com/nodejs/node/pull/14744)
* [[`8a0d101adf`](https://github.com/nodejs/node/commit/8a0d101adf)] - **http2**: use per-environment buffers (Anna Henningsen) [#14744](https://github.com/nodejs/node/pull/14744)
* [[`92c37fe5fd`](https://github.com/nodejs/node/commit/92c37fe5fd)] - **http2**: improve perf of passing headers to C++ (Anna Henningsen) [#14723](https://github.com/nodejs/node/pull/14723)
* [[`47bf705f75`](https://github.com/nodejs/node/commit/47bf705f75)] - **http2**: rename some nghttp2 stream flags (Kelvin Jin) [#14637](https://github.com/nodejs/node/pull/14637)
* [[`723d1af5e7`](https://github.com/nodejs/node/commit/723d1af5e7)] - **(SEMVER-MINOR)** **http2**: fix flakiness in timeout (James M Snell) [#14239](https://github.com/nodejs/node/pull/14239)
* [[`6a30448bac`](https://github.com/nodejs/node/commit/6a30448bac)] - **(SEMVER-MINOR)** **http2**: fix linting after rebase (James M Snell) [#14239](https://github.com/nodejs/node/pull/14239)
* [[`efd929e402`](https://github.com/nodejs/node/commit/efd929e402)] - **(SEMVER-MINOR)** **http2**: fix compilation error after V8 update (James M Snell) [#14239](https://github.com/nodejs/node/pull/14239)
* [[`f46c50b3e2`](https://github.com/nodejs/node/commit/f46c50b3e2)] - **(SEMVER-MINOR)** **http2**: add some doc detail for invalid header chars (James M Snell) [#14239](https://github.com/nodejs/node/pull/14239)
* [[`b43caf92c0`](https://github.com/nodejs/node/commit/b43caf92c0)] - **(SEMVER-MINOR)** **http2**: fix documentation errors (James M Snell) [#14239](https://github.com/nodejs/node/pull/14239)
* [[`33b03b2ab2`](https://github.com/nodejs/node/commit/33b03b2ab2)] - **(SEMVER-MINOR)** **http2**: minor cleanup (James M Snell) [#14239](https://github.com/nodejs/node/pull/14239)
* [[`174ab6fda0`](https://github.com/nodejs/node/commit/174ab6fda0)] - **(SEMVER-MINOR)** **http2**: use static allocated arrays (James M Snell) [#14239](https://github.com/nodejs/node/pull/14239)
* [[`9a4be4adc4`](https://github.com/nodejs/node/commit/9a4be4adc4)] - **(SEMVER-MINOR)** **http2**: get trailers working with the compat api (James M Snell) [#14239](https://github.com/nodejs/node/pull/14239)
* [[`3e5b07a8fb`](https://github.com/nodejs/node/commit/3e5b07a8fb)] - **(SEMVER-MINOR)** **http2**: refactor trailers API (James M Snell) [#14239](https://github.com/nodejs/node/pull/14239)
* [[`26e1f8e01c`](https://github.com/nodejs/node/commit/26e1f8e01c)] - **(SEMVER-MINOR)** **http2**: address initial pr feedback (James M Snell) [#14239](https://github.com/nodejs/node/pull/14239)
* [[`7824fa0b40`](https://github.com/nodejs/node/commit/7824fa0b40)] - **(SEMVER-MINOR)** **http2**: make writeHead behave like HTTP/1. (Matteo Collina) [#14239](https://github.com/nodejs/node/pull/14239)
* [[`b778838337`](https://github.com/nodejs/node/commit/b778838337)] - **(SEMVER-MINOR)** **http2**: doc and fixes to the Compatibility API (Matteo Collina) [#14239](https://github.com/nodejs/node/pull/14239)
* [[`8f3bbd9b68`](https://github.com/nodejs/node/commit/8f3bbd9b68)] - **(SEMVER-MINOR)** **http2**: add range support for respondWith{File|FD} (James M Snell) [#14239](https://github.com/nodejs/node/pull/14239)
* [[`61696f1215`](https://github.com/nodejs/node/commit/61696f1215)] - **(SEMVER-MINOR)** **http2**: fix socketOnTimeout and a segfault (James M Snell) [#14239](https://github.com/nodejs/node/pull/14239)
* [[`2620769e7f`](https://github.com/nodejs/node/commit/2620769e7f)] - **(SEMVER-MINOR)** **http2**: refinement and test for socketError (James M Snell) [#14239](https://github.com/nodejs/node/pull/14239)
* [[`cd0f4c6652`](https://github.com/nodejs/node/commit/cd0f4c6652)] - **(SEMVER-MINOR)** **http2**: fix abort when client.destroy inside end event (James M Snell) [#14239](https://github.com/nodejs/node/pull/14239)
* [[`e8cc193bcc`](https://github.com/nodejs/node/commit/e8cc193bcc)] - **(SEMVER-MINOR)** **http2**: fix documentation nits (James M Snell) [#14239](https://github.com/nodejs/node/pull/14239)
* [[`a49146e446`](https://github.com/nodejs/node/commit/a49146e446)] - **(SEMVER-MINOR)** **http2**: remove redundant return in test (James M Snell) [#14239](https://github.com/nodejs/node/pull/14239)
* [[`3eb61b00de`](https://github.com/nodejs/node/commit/3eb61b00de)] - **(SEMVER-MINOR)** **http2**: add tests and benchmarks (James M Snell) [#14239](https://github.com/nodejs/node/pull/14239)
* [[`9623ee0f99`](https://github.com/nodejs/node/commit/9623ee0f99)] - **(SEMVER-MINOR)** **http2**: introducing HTTP/2 (James M Snell) [#14239](https://github.com/nodejs/node/pull/14239)
* [[`029567a460`](https://github.com/nodejs/node/commit/029567a460)] - **inspector**: support extra contexts (Eugene Ostroukhov) [#14465](https://github.com/nodejs/node/pull/14465)
* [[`d89f9f82b0`](https://github.com/nodejs/node/commit/d89f9f82b0)] - **(SEMVER-MINOR)** **inspector**: allow require in Runtime.evaluate (Jan Krems) [#8837](https://github.com/nodejs/node/pull/8837)
* [[`ac1b81ad75`](https://github.com/nodejs/node/commit/ac1b81ad75)] - **lib**: move deprecationWarned var (Daniel Bevenius) [#14769](https://github.com/nodejs/node/pull/14769)
* [[`8433b1ad37`](https://github.com/nodejs/node/commit/8433b1ad37)] - **lib**: use Timer.now() in readline module (Rich Trott) [#14681](https://github.com/nodejs/node/pull/14681)
* [[`917ace283f`](https://github.com/nodejs/node/commit/917ace283f)] - **(SEMVER-MINOR)** **n-api**: add napi_get_node_version (Anna Henningsen) [#14696](https://github.com/nodejs/node/pull/14696)
* [[`5e2cce59ef`](https://github.com/nodejs/node/commit/5e2cce59ef)] - **(SEMVER-MINOR)** **n-api**: optimize number API performance (Jason Ginchereau) [#14573](https://github.com/nodejs/node/pull/14573)
* [[`c94f346b93`](https://github.com/nodejs/node/commit/c94f346b93)] - **net**: use rest parameters instead of arguments (Tobias Nießen) [#13472](https://github.com/nodejs/node/pull/13472)
* [[`1c00875747`](https://github.com/nodejs/node/commit/1c00875747)] - **repl**: include folder extensions in autocomplete (Teddy Katz) [#14727](https://github.com/nodejs/node/pull/14727)
* [[`59d1d56da6`](https://github.com/nodejs/node/commit/59d1d56da6)] - **src**: remove unused http2_socket_buffer from env (Anna Henningsen) [#14740](https://github.com/nodejs/node/pull/14740)
* [[`268a1ff3f1`](https://github.com/nodejs/node/commit/268a1ff3f1)] - **src**: mention that node options are space-separated (Gabriel Schulhof) [#14709](https://github.com/nodejs/node/pull/14709)
* [[`9237ef868e`](https://github.com/nodejs/node/commit/9237ef868e)] - **src**: avoid creating local data variable (Daniel Bevenius) [#14732](https://github.com/nodejs/node/pull/14732)
* [[`f83827d64b`](https://github.com/nodejs/node/commit/f83827d64b)] - **src**: use local isolate instead of args.GetIsolate (Daniel Bevenius) [#14768](https://github.com/nodejs/node/pull/14768)
* [[`d7d22ead2b`](https://github.com/nodejs/node/commit/d7d22ead2b)] - **src**: add comments for cares library init refcount (Anna Henningsen) [#14743](https://github.com/nodejs/node/pull/14743)
* [[`b87fae927d`](https://github.com/nodejs/node/commit/b87fae927d)] - **src**: remove duplicate loop (Anna Henningsen) [#14750](https://github.com/nodejs/node/pull/14750)
* [[`033773c17b`](https://github.com/nodejs/node/commit/033773c17b)] - **src**: add overlooked handle to cleanup (Anna Henningsen) [#14749](https://github.com/nodejs/node/pull/14749)
* [[`dd6444d401`](https://github.com/nodejs/node/commit/dd6444d401)] - **src,http2**: DRY header/trailer handling code up (Anna Henningsen) [#14688](https://github.com/nodejs/node/pull/14688)
* [[`ef8ac7b5ac`](https://github.com/nodejs/node/commit/ef8ac7b5ac)] - **(SEMVER-MINOR)** **stream**: support readable/writableHWM for Duplex (Guy Margalit) [#14636](https://github.com/nodejs/node/pull/14636)
* [[`6d9f94f93f`](https://github.com/nodejs/node/commit/6d9f94f93f)] - **test**: cover all HTTP methods that parser supports (Oky Antoro) [#14773](https://github.com/nodejs/node/pull/14773)
* [[`e4854fccfc`](https://github.com/nodejs/node/commit/e4854fccfc)] - **test**: use regular expressions in throw assertions (Vincent Xue) [#14318](https://github.com/nodejs/node/pull/14318)
* [[`66788fc4d0`](https://github.com/nodejs/node/commit/66788fc4d0)] - **test**: increase http2 coverage (Michael Albert) [#14701](https://github.com/nodejs/node/pull/14701)
* [[`dbb9c370d4`](https://github.com/nodejs/node/commit/dbb9c370d4)] - **test**: add crypto check to http2 tests (Daniel Bevenius) [#14657](https://github.com/nodejs/node/pull/14657)
* [[`97f622b99e`](https://github.com/nodejs/node/commit/97f622b99e)] - **(SEMVER-MINOR)** **test**: fix flaky test-http2-client-unescaped-path on osx (James M Snell) [#14239](https://github.com/nodejs/node/pull/14239)
* [[`9d752d5282`](https://github.com/nodejs/node/commit/9d752d5282)] - **(SEMVER-MINOR)** **test**: fix flakiness in test-http2-client-upload (James M Snell) [#14239](https://github.com/nodejs/node/pull/14239)
* [[`82c63a55ea`](https://github.com/nodejs/node/commit/82c63a55ea)] - **test**: add test-benchmark-arrays (Rich Trott) [#14728](https://github.com/nodejs/node/pull/14728)
* [[`0eab77c86f`](https://github.com/nodejs/node/commit/0eab77c86f)] - **test**: allow inspector to reopen with same port (Gibson Fahnestock) [#14320](https://github.com/nodejs/node/pull/14320)
* [[`9bbbf12827`](https://github.com/nodejs/node/commit/9bbbf12827)] - **test**: remove redundant `using` in cctest (XadillaX) [#14739](https://github.com/nodejs/node/pull/14739)
* [[`7eb9f6f6e4`](https://github.com/nodejs/node/commit/7eb9f6f6e4)] - **test**: make totalLen snake case (Daniel Bevenius) [#14765](https://github.com/nodejs/node/pull/14765)
* [[`977e22857a`](https://github.com/nodejs/node/commit/977e22857a)] - **test**: make test-tls-connect checks more strict (Rich Trott) [#14695](https://github.com/nodejs/node/pull/14695)
* [[`a781bb4508`](https://github.com/nodejs/node/commit/a781bb4508)] - ***Revert*** "**test**: disable MultipleEnvironmentsPerIsolate" (Anna Henningsen) [#14749](https://github.com/nodejs/node/pull/14749)
* [[`8ff2a5c338`](https://github.com/nodejs/node/commit/8ff2a5c338)] - ***Revert*** "**test**: add DISABLED_ prefix to commented out test" (Anna Henningsen) [#14749](https://github.com/nodejs/node/pull/14749)
* [[`0bc3124c80`](https://github.com/nodejs/node/commit/0bc3124c80)] - **test**: properly order freeing resources in cctest (Anna Henningsen) [#14749](https://github.com/nodejs/node/pull/14749)
* [[`3f1bb0a551`](https://github.com/nodejs/node/commit/3f1bb0a551)] - **test**: split out load-sensitive readline tests (Rich Trott) [#14681](https://github.com/nodejs/node/pull/14681)
* [[`5d99d7dff2`](https://github.com/nodejs/node/commit/5d99d7dff2)] - **test**: add block scoping to test-readline-interface (Rich Trott) [#14615](https://github.com/nodejs/node/pull/14615)
* [[`58742729da`](https://github.com/nodejs/node/commit/58742729da)] - **test**: set module loading error for aix (Prakash Palaniappan) [#14511](https://github.com/nodejs/node/pull/14511)
* [[`06ba2dae30`](https://github.com/nodejs/node/commit/06ba2dae30)] - **test**: fix conversion of microseconds in test (Nick Stanish) [#14706](https://github.com/nodejs/node/pull/14706)
* [[`30837b3b90`](https://github.com/nodejs/node/commit/30837b3b90)] - **test**: improve check in test-os (Rich Trott) [#14655](https://github.com/nodejs/node/pull/14655)
* [[`55aba6aee7`](https://github.com/nodejs/node/commit/55aba6aee7)] - **test**: replace indexOf with includes (Miguel Angel Asencio Hurtado) [#14630](https://github.com/nodejs/node/pull/14630)
* [[`935d34bd6b`](https://github.com/nodejs/node/commit/935d34bd6b)] - **test**: fix test-readline-interface (Azard) [#14677](https://github.com/nodejs/node/pull/14677)
* [[`2ee3320f2c`](https://github.com/nodejs/node/commit/2ee3320f2c)] - **test**: improve multiple timers tests (James M Snell) [#14616](https://github.com/nodejs/node/pull/14616)
* [[`71f2e76353`](https://github.com/nodejs/node/commit/71f2e76353)] - **test**: use ciphers supported by shared OpenSSL (Jérémy Lal) [#14566](https://github.com/nodejs/node/pull/14566)
* [[`f73f659186`](https://github.com/nodejs/node/commit/f73f659186)] - **test**: mitigate RegEx exceeding 80 chars (Aditya Anand) [#14607](https://github.com/nodejs/node/pull/14607)
* [[`96147c980c`](https://github.com/nodejs/node/commit/96147c980c)] - **test**: read proper inspector message size (Bartosz Sosnowski) [#14596](https://github.com/nodejs/node/pull/14596)
* [[`e84c9d7176`](https://github.com/nodejs/node/commit/e84c9d7176)] - **(SEMVER-MINOR)** **tls**: add tlsSocket.disableRenegotiation() (James M Snell) [#14239](https://github.com/nodejs/node/pull/14239)
* [[`a0e05e884e`](https://github.com/nodejs/node/commit/a0e05e884e)] - **tools**: fix tools/addon-verify.js (Daniel Bevenius) [#14048](https://github.com/nodejs/node/pull/14048)
* [[`116841056a`](https://github.com/nodejs/node/commit/116841056a)] - **util**: improve util.inspect performance (Ruben Bridgewater) [#14492](https://github.com/nodejs/node/pull/14492)
* [[`7203924fea`](https://github.com/nodejs/node/commit/7203924fea)] - **(SEMVER-MINOR)** **util**: implement %o and %O as formatting specifiers (Greg Alexander) [#14558](https://github.com/nodejs/node/pull/14558)
<a id="8.3.0"></a> <a id="8.3.0"></a>
## 2017-08-09, Version 8.3.0 (Current), @addaleax ## 2017-08-09, Version 8.3.0 (Current), @addaleax

Loading…
Cancel
Save