From 1fe0741e50b19ffaaabc77c3a8b99355dc3d28fe Mon Sep 17 00:00:00 2001 From: Anna Henningsen Date: Sun, 13 Aug 2017 22:33:49 +0200 Subject: [PATCH] 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 --- doc/api/cli.md | 2 +- doc/api/http2.md | 230 ++++++++++++++++----------------- doc/api/n-api.md | 10 +- doc/api/stream.md | 2 +- doc/api/tls.md | 2 +- doc/api/util.md | 2 +- doc/changelogs/CHANGELOG_V8.md | 130 +++++++++++++++++++ 7 files changed, 254 insertions(+), 124 deletions(-) diff --git a/doc/api/cli.md b/doc/api/cli.md index ab67892390fb25..dc0b18157ce50b 100644 --- a/doc/api/cli.md +++ b/doc/api/cli.md @@ -172,7 +172,7 @@ Silence all process warnings (including deprecations). ### `--expose-http2` Enable the experimental `'http2'` module. diff --git a/doc/api/http2.md b/doc/api/http2.md index 78e2fad23a884b..eaf88483cd0bd4 100755 --- a/doc/api/http2.md +++ b/doc/api/http2.md @@ -69,7 +69,7 @@ req.end(); ### Class: Http2Session * Extends: {EventEmitter} @@ -103,14 +103,14 @@ solely on the API of the `Http2Session`. #### Event: 'close' The `'close'` event is emitted once the `Http2Session` has been terminated. #### Event: 'connect' 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' The `'error'` event is emitted when an error occurs during the processing of @@ -128,7 +128,7 @@ an `Http2Session`. #### Event: 'frameError' The `'frameError'` event is emitted when an error occurs while attempting to @@ -150,7 +150,7 @@ immediately following the `'frameError'` event. #### Event: 'goaway' 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' The `'localSettings'` event is emitted when an acknowledgement SETTINGS frame @@ -188,7 +188,7 @@ session.on('localSettings', (settings) => { #### Event: 'remoteSettings' The `'remoteSettings'` event is emitted when a new SETTINGS frame is received @@ -203,7 +203,7 @@ session.on('remoteSettings', (settings) => { #### Event: 'stream' The `'stream'` event is emitted when a new `Http2Stream` is created. When @@ -256,7 +256,7 @@ server.listen(80); #### Event: 'socketError' 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' After the `http2session.setTimeout()` method is used to set the timeout period @@ -283,7 +283,7 @@ session.on('timeout', () => { /** .. **/ }); #### http2session.destroy() * Returns: {undefined} @@ -293,7 +293,7 @@ Immediately terminates the `Http2Session` and the associated `net.Socket` or #### http2session.destroyed * Value: {boolean} @@ -303,7 +303,7 @@ longer be used, otherwise `false`. #### http2session.localSettings * Value: {[Settings Object][]} @@ -313,7 +313,7 @@ A prototype-less object describing the current local settings of this #### http2session.pendingSettingsAck * Value: {boolean} @@ -325,7 +325,7 @@ frames have been acknowledged. #### http2session.remoteSettings * Value: {[Settings Object][]} @@ -335,7 +335,7 @@ A prototype-less object describing the current remote settings of this #### http2session.request(headers[, options]) * `headers` {[Headers Object][]} @@ -392,7 +392,7 @@ fields. #### http2session.rstStream(stream, code) * stream {Http2Stream} @@ -405,7 +405,7 @@ Sends an `RST_STREAM` frame to the connected HTTP/2 peer, causing the given #### http2session.setTimeout(msecs, callback) * `msecs` {number} @@ -418,7 +418,7 @@ registered as a listener on the `'timeout'` event. #### http2session.shutdown(options[, callback]) * `options` {Object} @@ -460,7 +460,7 @@ session.shutdown({ #### http2session.socket * Value: {net.Socket|tls.TLSSocket} @@ -474,7 +474,7 @@ details. #### http2session.state * Value: {Object} @@ -492,7 +492,7 @@ An object describing the current status of this `Http2Session`. #### http2session.priority(stream, options) * `stream` {Http2Stream} @@ -514,7 +514,7 @@ Updates the priority for the given `Http2Stream` instance. #### http2session.settings(settings) * `settings` {[Settings Object][]} @@ -534,7 +534,7 @@ pending. #### http2session.type * Value: {number} @@ -546,7 +546,7 @@ client. ### Class: Http2Stream * Extends: {Duplex} @@ -619,7 +619,7 @@ destroyed. #### Event: 'aborted' The `'aborted'` event is emitted whenever a `Http2Stream` instance is @@ -630,7 +630,7 @@ writable side has not been ended. #### Event: 'error' The `'error'` event is emitted when an error occurs during the processing of @@ -638,7 +638,7 @@ an `Http2Stream`. #### Event: 'frameError' 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' 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' 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' The `'trailers'` event is emitted when a block of headers associated with @@ -685,7 +685,7 @@ stream.on('trailers', (headers, flags) => { #### http2stream.aborted * Value: {boolean} @@ -695,7 +695,7 @@ the `'aborted'` event will have been emitted. #### http2stream.destroyed * Value: {boolean} @@ -705,7 +705,7 @@ usable. #### http2stream.priority(options) * `options` {Object} @@ -726,7 +726,7 @@ Updates the priority for this `Http2Stream` instance. #### http2stream.rstCode * Value: {number} @@ -738,7 +738,7 @@ calling `http2stream.rstStream()`, or `http2stream.destroy()`. Will be #### http2stream.rstStream(code) * 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() * Returns: {undefined} @@ -759,7 +759,7 @@ Shortcut for `http2stream.rstStream()` using error code `0x00` (No Error). #### http2stream.rstWithProtocolError() { * Returns: {undefined} @@ -768,7 +768,7 @@ Shortcut for `http2stream.rstStream()` using error code `0x01` (Protocol Error). #### http2stream.rstWithCancel() { * Returns: {undefined} @@ -777,7 +777,7 @@ Shortcut for `http2stream.rstStream()` using error code `0x08` (Cancel). #### http2stream.rstWithRefuse() { * Returns: {undefined} @@ -786,7 +786,7 @@ Shortcut for `http2stream.rstStream()` using error code `0x07` (Refused Stream). #### http2stream.rstWithInternalError() { * Returns: {undefined} @@ -795,7 +795,7 @@ Shortcut for `http2stream.rstStream()` using error code `0x02` (Internal Error). #### http2stream.session * Value: {Http2Sesssion} @@ -805,7 +805,7 @@ value will be `undefined` after the `Http2Stream` instance is destroyed. #### http2stream.setTimeout(msecs, callback) * `msecs` {number} @@ -824,7 +824,7 @@ req.setTimeout(5000, () => req.rstStreamWithCancel()); #### http2stream.state * Value: {Object} @@ -839,7 +839,7 @@ A current state of this `Http2Stream`. ### Class: ClientHttp2Stream * Extends {Http2Stream} @@ -851,7 +851,7 @@ the client. #### Event: 'headers' The `'headers'` event is emitted when an additional block of headers is received @@ -867,7 +867,7 @@ stream.on('headers', (headers, flags) => { #### Event: 'push' The `'push'` event is emitted when response headers for a Server Push stream @@ -882,7 +882,7 @@ stream.on('push', (headers, flags) => { #### Event: 'response' The `'response'` event is emitted when a response `HEADERS` frame has been @@ -903,7 +903,7 @@ req.on('response', (headers, flags) => { ### Class: ServerHttp2Stream * Extends: {Http2Stream} @@ -915,7 +915,7 @@ provide additional methods such as `http2stream.pushStream()` and #### http2stream.additionalHeaders(headers) * `headers` {[Headers Object][]} @@ -925,7 +925,7 @@ Sends an additional informational `HEADERS` frame to the connected HTTP/2 peer. #### http2stream.headersSent * Value: {boolean} @@ -934,7 +934,7 @@ Boolean (read-only). True if headers were sent, false otherwise. #### http2stream.pushAllowed * Value: {boolean} @@ -946,7 +946,7 @@ accepts push streams, `false` otherwise. Settings are the same for every #### http2stream.pushStream(headers[, options], callback) * `headers` {[Headers Object][]} @@ -982,7 +982,7 @@ server.on('stream', (stream) => { #### http2stream.respond([headers[, options]]) * `headers` {[Headers Object][]} @@ -1027,7 +1027,7 @@ fields. #### http2stream.respondWithFD(fd[, headers[, options]]) * `fd` {number} A readable file descriptor @@ -1111,7 +1111,7 @@ fields. #### http2stream.respondWithFile(path[, headers[, options]]) * `path` {string|Buffer|URL} @@ -1203,14 +1203,14 @@ fields. ### Class: Http2Server * Extends: {net.Server} #### Event: 'sessionError' 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' The `'socketError'` event is emitted when a `'socketError'` event is emitted by @@ -1227,7 +1227,7 @@ an `Http2Session` associated with the server. #### Event: 'stream' 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' * `request` {http2.Http2ServerRequest} @@ -1269,7 +1269,7 @@ per session. See the [Compatibility API](compatiblity-api). #### Event: 'timeout' 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 * Extends: {tls.Server} #### Event: 'sessionError' 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' The `'socketError'` event is emitted when a `'socketError'` event is emitted by @@ -1301,7 +1301,7 @@ an `Http2Session` associated with the server. #### Event: 'unknownProtocol' The `'unknownProtocol'` event is emitted when a connecting client fails to @@ -1311,7 +1311,7 @@ the connection is terminated. See the #### Event: 'stream' 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' * `request` {http2.Http2ServerRequest} @@ -1355,12 +1355,12 @@ per session. See the [Compatibility API](compatiblity-api). #### Event: 'timeout' ### http2.createServer(options[, onRequestHandler]) * `options` {Object} @@ -1415,7 +1415,7 @@ server.listen(80); ### http2.createSecureServer(options[, onRequestHandler]) * `options` {Object} @@ -1481,7 +1481,7 @@ server.listen(80); ### http2.connect(authority[, options][, listener]) * `authority` {string|URL} @@ -1532,7 +1532,7 @@ client.destroy(); ### http2.constants #### Error Codes for RST_STREAM and GOAWAY @@ -1560,7 +1560,7 @@ a given number of milliseconds set using `http2server.setTimeout()`. ### http2.getDefaultSettings() * Returns: {[Settings Object][]} @@ -1571,7 +1571,7 @@ so instances returned may be safely modified for use. ### http2.getPackedSettings(settings) * `settings` {[Settings Object][]} @@ -1592,7 +1592,7 @@ console.log(packed.toString('base64')); ### http2.getUnpackedSettings(buf) * `buf` {Buffer|Uint8Array} The packed settings @@ -1898,7 +1898,7 @@ HTTP/2. ### Class: http2.Http2ServerRequest A `Http2ServerRequest` object is created by [`http2.Server`][] or @@ -1911,7 +1911,7 @@ following additional events, methods, and properties. #### Event: 'aborted' The `'aborted'` event is emitted whenever a `Http2ServerRequest` instance is @@ -1922,7 +1922,7 @@ abnormally aborted in mid-communication. #### Event: 'close' Indicates that the underlying [`Http2Stream`][] was closed. @@ -1930,7 +1930,7 @@ Just like `'end'`, this event occurs only once per response. #### request.destroy([error]) * `error` {Error} @@ -1943,7 +1943,7 @@ It does nothing if the stream was already destroyed. #### request.headers * {Object} @@ -1966,7 +1966,7 @@ See [Headers Object][]. ### request.httpVersion * {string} @@ -1980,7 +1980,7 @@ Also `message.httpVersionMajor` is the first integer and #### request.method * {string} @@ -1990,7 +1990,7 @@ The request method as a string. Read only. Example: #### request.rawHeaders * {Array} @@ -2019,7 +2019,7 @@ console.log(request.rawHeaders); #### request.rawTrailers * {Array} @@ -2029,7 +2029,7 @@ received. Only populated at the `'end'` event. #### request.setTimeout(msecs, callback) * `msecs` {number} @@ -2041,7 +2041,7 @@ Returns `request`. #### request.socket * {net.Socket} @@ -2056,7 +2056,7 @@ data transfers are managed by HTTP/2 and data might be lost. #### request.stream * {http2.Http2Stream} @@ -2065,7 +2065,7 @@ The [`Http2Stream`][] object backing the request. #### request.trailers * {Object} @@ -2074,7 +2074,7 @@ The request/response trailers object. Only populated at the `'end'` event. #### request.url * {string} @@ -2141,7 +2141,7 @@ Url { ### Class: http2.Http2ServerResponse 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' Indicates that the underlying [`Http2Stream`]() was terminated before @@ -2160,7 +2160,7 @@ Indicates that the underlying [`Http2Stream`]() was terminated before ### Event: 'finish' 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) * `headers` {Object} @@ -2185,7 +2185,7 @@ will result in a [`TypeError`][] being thrown. ### response.connection * {net.Socket} @@ -2194,7 +2194,7 @@ See [`response.socket`][]. ### response.end([data][, encoding][, callback]) * `data` {string|Buffer} @@ -2213,7 +2213,7 @@ is finished. ### response.finished * {boolean} @@ -2223,7 +2223,7 @@ as `false`. After [`response.end()`][] executes, the value will be `true`. ### response.getHeader(name) * `name` {string} @@ -2240,7 +2240,7 @@ const contentType = response.getHeader('content-type'); ### response.getHeaderNames() * Returns: {Array} @@ -2260,7 +2260,7 @@ const headerNames = response.getHeaderNames(); ### response.getHeaders() * Returns: {Object} @@ -2288,7 +2288,7 @@ const headers = response.getHeaders(); ### response.hasHeader(name) * `name` {string} @@ -2305,7 +2305,7 @@ const hasContentType = response.hasHeader('content-type'); ### response.headersSent * {boolean} @@ -2314,7 +2314,7 @@ Boolean (read-only). True if headers were sent, false otherwise. ### response.removeHeader(name) * `name` {string} @@ -2329,7 +2329,7 @@ response.removeHeader('Content-Encoding'); ### response.sendDate * {boolean} @@ -2342,7 +2342,7 @@ in responses. ### response.setHeader(name, value) * `name` {string} @@ -2383,7 +2383,7 @@ const server = http2.createServer((req, res) => { ### response.setTimeout(msecs[, callback]) * `msecs` {number} @@ -2402,7 +2402,7 @@ Returns `response`. ### response.socket * {net.Socket} @@ -2426,7 +2426,7 @@ const server = http2.createServer((req, res) => { ### response.statusCode * {number} @@ -2446,7 +2446,7 @@ status code which was sent out. ### response.statusMessage * {string} @@ -2456,7 +2456,7 @@ an empty string. #### response.stream * {http2.Http2Stream} @@ -2465,7 +2465,7 @@ The [`Http2Stream`][] object backing the response. ### response.write(chunk[, encoding][, callback]) * `chunk` {string|Buffer} @@ -2503,7 +2503,7 @@ buffer. Returns `false` if all or part of the data was queued in user memory. ### response.writeContinue() 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]) * `statusCode` {number} @@ -2567,7 +2567,7 @@ will result in a [`TypeError`][] being thrown. ### response.createPushResponse(headers, callback) Call [`stream.pushStream()`][] with the given headers, and wraps the diff --git a/doc/api/n-api.md b/doc/api/n-api.md index 04af7a62723c70..109674a4bf4b06 100644 --- a/doc/api/n-api.md +++ b/doc/api/n-api.md @@ -1374,7 +1374,7 @@ JavaScript DataView Objects are described in ### Functions to convert from C types to N-API #### *napi_create_int32* ```C 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* ```C 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* ```C 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* ```C 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 ```C diff --git a/doc/api/stream.md b/doc/api/stream.md index 7d42bd2d71ca6a..3663fe2d780830 100644 --- a/doc/api/stream.md +++ b/doc/api/stream.md @@ -1742,7 +1742,7 @@ constructor and implement *both* the `readable._read()` and #### new stream.Duplex(options) Disables TLS renegotiation for this `TLSSocket` instance. Once called, attempts diff --git a/doc/api/util.md b/doc/api/util.md index c853d04716c310..076fbc479dc695 100644 --- a/doc/api/util.md +++ b/doc/api/util.md @@ -151,7 +151,7 @@ property take precedence over `--trace-deprecation` and diff --git a/doc/changelogs/CHANGELOG_V8.md b/doc/changelogs/CHANGELOG_V8.md index bd40000a94b903..276f2c95cfb39b 100644 --- a/doc/changelogs/CHANGELOG_V8.md +++ b/doc/changelogs/CHANGELOG_V8.md @@ -6,6 +6,7 @@ +8.4.0
8.3.0
8.2.1
8.2.0
@@ -29,6 +30,135 @@ * [io.js](CHANGELOG_IOJS.md) * [Archive](CHANGELOG_ARCHIVE.md) + +## 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) + ## 2017-08-09, Version 8.3.0 (Current), @addaleax