doc: use consistent unordered list style

Convert to asterisks when there are mixed styles in document.
Addresses Markdownlint MD004 rule

PR-URL: https://github.com/nodejs/node/pull/29516
Reviewed-By: David Carlier <devnexen@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Trivikram Kamat <trivikr.dev@gmail.com>
This commit is contained in:
Nick Schonning 2019-09-13 00:22:29 -04:00 committed by Rich Trott
parent 3d841fe20d
commit e2dcbf1c32
41 changed files with 1858 additions and 1862 deletions

View File

@ -3,35 +3,35 @@
## Contents ## Contents
* [Issues and Pull Requests](#issues-and-pull-requests) * [Issues and Pull Requests](#issues-and-pull-requests)
- [Welcoming First-Time Contributors](#welcoming-first-time-contributors) * [Welcoming First-Time Contributors](#welcoming-first-time-contributors)
- [Closing Issues and Pull Requests](#closing-issues-and-pull-requests) * [Closing Issues and Pull Requests](#closing-issues-and-pull-requests)
- [Author ready pull requests](#author-ready-pull-requests) * [Author ready pull requests](#author-ready-pull-requests)
- [Handling own pull requests](#handling-own-pull-requests) * [Handling own pull requests](#handling-own-pull-requests)
* [Accepting Modifications](#accepting-modifications) * [Accepting Modifications](#accepting-modifications)
- [Code Reviews](#code-reviews) * [Code Reviews](#code-reviews)
- [Consensus Seeking](#consensus-seeking) * [Consensus Seeking](#consensus-seeking)
- [Waiting for Approvals](#waiting-for-approvals) * [Waiting for Approvals](#waiting-for-approvals)
- [Testing and CI](#testing-and-ci) * [Testing and CI](#testing-and-ci)
- [Useful CI Jobs](#useful-ci-jobs) * [Useful CI Jobs](#useful-ci-jobs)
- [Internal vs. Public API](#internal-vs-public-api) * [Internal vs. Public API](#internal-vs-public-api)
- [Breaking Changes](#breaking-changes) * [Breaking Changes](#breaking-changes)
- [Breaking Changes and Deprecations](#breaking-changes-and-deprecations) * [Breaking Changes and Deprecations](#breaking-changes-and-deprecations)
- [Breaking Changes to Internal Elements](#breaking-changes-to-internal-elements) * [Breaking Changes to Internal Elements](#breaking-changes-to-internal-elements)
- [Unintended Breaking Changes](#unintended-breaking-changes) * [Unintended Breaking Changes](#unintended-breaking-changes)
- [Reverting commits](#reverting-commits) * [Reverting commits](#reverting-commits)
- [Introducing New Modules](#introducing-new-modules) * [Introducing New Modules](#introducing-new-modules)
- [Additions to N-API](#additions-to-n-api) * [Additions to N-API](#additions-to-n-api)
- [Deprecations](#deprecations) * [Deprecations](#deprecations)
- [Involving the TSC](#involving-the-tsc) * [Involving the TSC](#involving-the-tsc)
* [Landing Pull Requests](#landing-pull-requests) * [Landing Pull Requests](#landing-pull-requests)
- [Using `git-node`](#using-git-node) * [Using `git-node`](#using-git-node)
- [Technical HOWTO](#technical-howto) * [Technical HOWTO](#technical-howto)
- [Troubleshooting](#troubleshooting) * [Troubleshooting](#troubleshooting)
- [I Made a Mistake](#i-made-a-mistake) * [I Made a Mistake](#i-made-a-mistake)
- [Long Term Support](#long-term-support) * [Long Term Support](#long-term-support)
- [What is LTS?](#what-is-lts) * [What is LTS?](#what-is-lts)
- [How are LTS Branches Managed?](#how-are-lts-branches-managed) * [How are LTS Branches Managed?](#how-are-lts-branches-managed)
- [How can I help?](#how-can-i-help) * [How can I help?](#how-can-i-help)
* [Who to CC in the issue tracker](#who-to-cc-in-the-issue-tracker) * [Who to CC in the issue tracker](#who-to-cc-in-the-issue-tracker)
This document explains how Collaborators manage the Node.js project. This document explains how Collaborators manage the Node.js project.
@ -371,10 +371,10 @@ deprecation level of an API.
Collaborators may opt to elevate pull requests or issues to the [TSC][]. Collaborators may opt to elevate pull requests or issues to the [TSC][].
Do this if a pull request or issue: Do this if a pull request or issue:
- is labeled `semver-major`, or * is labeled `semver-major`, or
- has a significant impact on the codebase, or * has a significant impact on the codebase, or
- is controversial, or * is controversial, or
- is at an impasse among Collaborators who are participating in the discussion. * is at an impasse among Collaborators who are participating in the discussion.
@-mention the `@nodejs/tsc` GitHub team if you want to elevate an issue to the @-mention the `@nodejs/tsc` GitHub team if you want to elevate an issue to the
[TSC][]. Do not use the GitHub UI on the right-hand side to assign to [TSC][]. Do not use the GitHub UI on the right-hand side to assign to

View File

@ -191,8 +191,8 @@ class FancyContainer {
### Memory allocation ### Memory allocation
- `Malloc()`, `Calloc()`, etc. from `util.h` abort in Out-of-Memory situations * `Malloc()`, `Calloc()`, etc. from `util.h` abort in Out-of-Memory situations
- `UncheckedMalloc()`, etc. return `nullptr` in OOM situations * `UncheckedMalloc()`, etc. return `nullptr` in OOM situations
### Use `nullptr` instead of `NULL` or `0` ### Use `nullptr` instead of `NULL` or `0`
@ -278,10 +278,10 @@ data[0] = 12345;
### Type casting ### Type casting
- Use `static_cast<T>` if casting is required, and it is valid * Use `static_cast<T>` if casting is required, and it is valid
- Use `reinterpret_cast` only when it is necessary * Use `reinterpret_cast` only when it is necessary
- Avoid C-style casts (`(type)value`) * Avoid C-style casts (`(type)value`)
- `dynamic_cast` does not work because Node.js is built without * `dynamic_cast` does not work because Node.js is built without
[Run Time Type Information][] [Run Time Type Information][]
Further reading: Further reading:

View File

@ -2,13 +2,13 @@
<!-- TOC --> <!-- TOC -->
- [Collaborators](#collaborators) * [Collaborators](#collaborators)
- [Collaborator Activities](#collaborator-activities) * [Collaborator Activities](#collaborator-activities)
- [Technical Steering Committee](#technical-steering-committee) * [Technical Steering Committee](#technical-steering-committee)
- [TSC Meetings](#tsc-meetings) * [TSC Meetings](#tsc-meetings)
- [Collaborator Nominations](#collaborator-nominations) * [Collaborator Nominations](#collaborator-nominations)
- [Onboarding](#onboarding) * [Onboarding](#onboarding)
- [Consensus Seeking Process](#consensus-seeking-process) * [Consensus Seeking Process](#consensus-seeking-process)
<!-- /TOC --> <!-- /TOC -->

View File

@ -14,22 +14,22 @@ nonetheless.
## Public disclosure preferred ## Public disclosure preferred
- [#14519](https://github.com/nodejs/node/issues/14519): _Internal domain * [#14519](https://github.com/nodejs/node/issues/14519): _Internal domain
function can be used to cause segfaults_. Requires the ability to execute function can be used to cause segfaults_. Requires the ability to execute
arbitrary JavaScript code. That is already the highest level of privilege arbitrary JavaScript code. That is already the highest level of privilege
possible. possible.
## Private disclosure preferred ## Private disclosure preferred
- [CVE-2016-7099](https://nodejs.org/en/blog/vulnerability/september-2016-security-releases/): * [CVE-2016-7099](https://nodejs.org/en/blog/vulnerability/september-2016-security-releases/):
_Fix invalid wildcard certificate validation check_. This was a high-severity _Fix invalid wildcard certificate validation check_. This was a high-severity
defect. It caused Node.js TLS clients to accept invalid wildcard certificates. defect. It caused Node.js TLS clients to accept invalid wildcard certificates.
- [#5507](https://github.com/nodejs/node/pull/5507): _Fix a defect that makes * [#5507](https://github.com/nodejs/node/pull/5507): _Fix a defect that makes
the CacheBleed Attack possible_. Many, though not all, OpenSSL vulnerabilities the CacheBleed Attack possible_. Many, though not all, OpenSSL vulnerabilities
in the TLS/SSL protocols also affect Node.js. in the TLS/SSL protocols also affect Node.js.
- [CVE-2016-2216](https://nodejs.org/en/blog/vulnerability/february-2016-security-releases/): * [CVE-2016-2216](https://nodejs.org/en/blog/vulnerability/february-2016-security-releases/):
_Fix defects in HTTP header parsing for requests and responses that can allow _Fix defects in HTTP header parsing for requests and responses that can allow
response splitting_. This was a remotely-exploitable defect in the Node.js response splitting_. This was a remotely-exploitable defect in the Node.js
HTTP implementation. HTTP implementation.

View File

@ -17,13 +17,13 @@ for more information on N-API.
When not using N-API, implementing Addons is complicated, When not using N-API, implementing Addons is complicated,
involving knowledge of several components and APIs: involving knowledge of several components and APIs:
- V8: the C++ library Node.js currently uses to provide the * V8: the C++ library Node.js currently uses to provide the
JavaScript implementation. V8 provides the mechanisms for creating objects, JavaScript implementation. V8 provides the mechanisms for creating objects,
calling functions, etc. V8's API is documented mostly in the calling functions, etc. V8's API is documented mostly in the
`v8.h` header file (`deps/v8/include/v8.h` in the Node.js source `v8.h` header file (`deps/v8/include/v8.h` in the Node.js source
tree), which is also available [online][v8-docs]. tree), which is also available [online][v8-docs].
- [libuv][]: The C library that implements the Node.js event loop, its worker * [libuv][]: The C library that implements the Node.js event loop, its worker
threads and all of the asynchronous behaviors of the platform. It also threads and all of the asynchronous behaviors of the platform. It also
serves as a cross-platform abstraction library, giving easy, POSIX-like serves as a cross-platform abstraction library, giving easy, POSIX-like
access across all major operating systems to many common system tasks, such access across all major operating systems to many common system tasks, such
@ -35,11 +35,11 @@ involving knowledge of several components and APIs:
off-loading work via libuv to non-blocking system operations, worker threads off-loading work via libuv to non-blocking system operations, worker threads
or a custom use of libuv's threads. or a custom use of libuv's threads.
- Internal Node.js libraries. Node.js itself exports a number of C++ APIs * Internal Node.js libraries. Node.js itself exports a number of C++ APIs
that Addons can use &mdash; the most important of which is the that Addons can use &mdash; the most important of which is the
`node::ObjectWrap` class. `node::ObjectWrap` class.
- Node.js includes a number of other statically linked libraries including * Node.js includes a number of other statically linked libraries including
OpenSSL. These other libraries are located in the `deps/` directory in the OpenSSL. These other libraries are located in the `deps/` directory in the
Node.js source tree. Only the libuv, OpenSSL, V8 and zlib symbols are Node.js source tree. Only the libuv, OpenSSL, V8 and zlib symbols are
purposefully re-exported by Node.js and may be used to various extents by purposefully re-exported by Node.js and may be used to various extents by
@ -262,8 +262,8 @@ signature.
In order to be loaded from multiple Node.js environments, In order to be loaded from multiple Node.js environments,
such as a main thread and a Worker thread, an add-on needs to either: such as a main thread and a Worker thread, an add-on needs to either:
- Be an N-API addon, or * Be an N-API addon, or
- Be declared as context-aware using `NODE_MODULE_INIT()` as described above * Be declared as context-aware using `NODE_MODULE_INIT()` as described above
### Building ### Building

View File

@ -301,8 +301,8 @@ added: v11.4.0
Chooses an HTTP parser library. Available values are: Chooses an HTTP parser library. Available values are:
- `llhttp` for https://llhttp.org/ * `llhttp` for https://llhttp.org/
- `legacy` for https://github.com/nodejs/http-parser * `legacy` for https://github.com/nodejs/http-parser
The default is `llhttp`, unless otherwise specified when building Node.js. The default is `llhttp`, unless otherwise specified when building Node.js.
@ -987,79 +987,79 @@ node --require "./a.js" --require "./b.js"
Node.js options that are allowed are: Node.js options that are allowed are:
<!-- node-options-node start --> <!-- node-options-node start -->
- `--enable-fips` * `--enable-fips`
- `--es-module-specifier-resolution` * `--es-module-specifier-resolution`
- `--experimental-exports` * `--experimental-exports`
- `--experimental-modules` * `--experimental-modules`
- `--experimental-policy` * `--experimental-policy`
- `--experimental-repl-await` * `--experimental-repl-await`
- `--experimental-report` * `--experimental-report`
- `--experimental-vm-modules` * `--experimental-vm-modules`
- `--experimental-wasm-modules` * `--experimental-wasm-modules`
- `--force-fips` * `--force-fips`
- `--frozen-intrinsics` * `--frozen-intrinsics`
- `--heapsnapshot-signal` * `--heapsnapshot-signal`
- `--http-parser` * `--http-parser`
- `--icu-data-dir` * `--icu-data-dir`
- `--input-type` * `--input-type`
- `--inspect-brk` * `--inspect-brk`
- `--inspect-port`, `--debug-port` * `--inspect-port`, `--debug-port`
- `--inspect-publish-uid` * `--inspect-publish-uid`
- `--inspect` * `--inspect`
- `--loader` * `--loader`
- `--max-http-header-size` * `--max-http-header-size`
- `--napi-modules` * `--napi-modules`
- `--no-deprecation` * `--no-deprecation`
- `--no-force-async-hooks-checks` * `--no-force-async-hooks-checks`
- `--no-warnings` * `--no-warnings`
- `--openssl-config` * `--openssl-config`
- `--pending-deprecation` * `--pending-deprecation`
- `--policy-integrity` * `--policy-integrity`
- `--preserve-symlinks-main` * `--preserve-symlinks-main`
- `--preserve-symlinks` * `--preserve-symlinks`
- `--prof-process` * `--prof-process`
- `--redirect-warnings` * `--redirect-warnings`
- `--report-directory` * `--report-directory`
- `--report-filename` * `--report-filename`
- `--report-on-fatalerror` * `--report-on-fatalerror`
- `--report-on-signal` * `--report-on-signal`
- `--report-signal` * `--report-signal`
- `--report-uncaught-exception` * `--report-uncaught-exception`
- `--require`, `-r` * `--require`, `-r`
- `--throw-deprecation` * `--throw-deprecation`
- `--title` * `--title`
- `--tls-cipher-list` * `--tls-cipher-list`
- `--tls-max-v1.2` * `--tls-max-v1.2`
- `--tls-max-v1.3` * `--tls-max-v1.3`
- `--tls-min-v1.0` * `--tls-min-v1.0`
- `--tls-min-v1.1` * `--tls-min-v1.1`
- `--tls-min-v1.2` * `--tls-min-v1.2`
- `--tls-min-v1.3` * `--tls-min-v1.3`
- `--trace-deprecation` * `--trace-deprecation`
- `--trace-event-categories` * `--trace-event-categories`
- `--trace-event-file-pattern` * `--trace-event-file-pattern`
- `--trace-events-enabled` * `--trace-events-enabled`
- `--trace-sync-io` * `--trace-sync-io`
- `--trace-tls` * `--trace-tls`
- `--trace-warnings` * `--trace-warnings`
- `--track-heap-objects` * `--track-heap-objects`
- `--unhandled-rejections` * `--unhandled-rejections`
- `--use-bundled-ca` * `--use-bundled-ca`
- `--use-openssl-ca` * `--use-openssl-ca`
- `--v8-pool-size` * `--v8-pool-size`
- `--zero-fill-buffers` * `--zero-fill-buffers`
<!-- node-options-node end --> <!-- node-options-node end -->
V8 options that are allowed are: V8 options that are allowed are:
<!-- node-options-v8 start --> <!-- node-options-v8 start -->
- `--abort-on-uncaught-exception` * `--abort-on-uncaught-exception`
- `--interpreted-frames-native-stack` * `--interpreted-frames-native-stack`
- `--max-old-space-size` * `--max-old-space-size`
- `--perf-basic-prof-only-functions` * `--perf-basic-prof-only-functions`
- `--perf-basic-prof` * `--perf-basic-prof`
- `--perf-prof-unwinding-info` * `--perf-prof-unwinding-info`
- `--perf-prof` * `--perf-prof`
- `--stack-trace-limit` * `--stack-trace-limit`
<!-- node-options-v8 end --> <!-- node-options-v8 end -->
### `NODE_PATH=path[:…]` ### `NODE_PATH=path[:…]`
@ -1194,12 +1194,12 @@ Asynchronous system APIs are used by Node.js whenever possible, but where they
do not exist, libuv's threadpool is used to create asynchronous node APIs based do not exist, libuv's threadpool is used to create asynchronous node APIs based
on synchronous system APIs. Node.js APIs that use the threadpool are: on synchronous system APIs. Node.js APIs that use the threadpool are:
- all `fs` APIs, other than the file watcher APIs and those that are explicitly * all `fs` APIs, other than the file watcher APIs and those that are explicitly
synchronous synchronous
- asynchronous crypto APIs such as `crypto.pbkdf2()`, `crypto.scrypt()`, * asynchronous crypto APIs such as `crypto.pbkdf2()`, `crypto.scrypt()`,
`crypto.randomBytes()`, `crypto.randomFill()`, `crypto.generateKeyPair()` `crypto.randomBytes()`, `crypto.randomFill()`, `crypto.generateKeyPair()`
- `dns.lookup()` * `dns.lookup()`
- all `zlib` APIs, other than those that are explicitly synchronous * all `zlib` APIs, other than those that are explicitly synchronous
Because libuv's threadpool has a fixed size, it means that if for whatever Because libuv's threadpool has a fixed size, it means that if for whatever
reason any of these APIs takes a long time, other (seemingly unrelated) APIs reason any of these APIs takes a long time, other (seemingly unrelated) APIs

View File

@ -180,9 +180,9 @@ added: v0.1.94
Instances of the `Cipher` class are used to encrypt data. The class can be Instances of the `Cipher` class are used to encrypt data. The class can be
used in one of two ways: used in one of two ways:
- As a [stream][] that is both readable and writable, where plain unencrypted * As a [stream][] that is both readable and writable, where plain unencrypted
data is written to produce encrypted data on the readable side, or data is written to produce encrypted data on the readable side, or
- Using the [`cipher.update()`][] and [`cipher.final()`][] methods to produce * Using the [`cipher.update()`][] and [`cipher.final()`][] methods to produce
the encrypted data. the encrypted data.
The [`crypto.createCipher()`][] or [`crypto.createCipheriv()`][] methods are The [`crypto.createCipher()`][] or [`crypto.createCipheriv()`][] methods are
@ -286,7 +286,7 @@ added: v1.0.0
* `buffer` {Buffer} * `buffer` {Buffer}
* `options` {Object} [`stream.transform` options][] * `options` {Object} [`stream.transform` options][]
- `plaintextLength` {number} * `plaintextLength` {number}
* Returns: {Cipher} for method chaining. * Returns: {Cipher} for method chaining.
When using an authenticated encryption mode (`GCM`, `CCM` and `OCB` are When using an authenticated encryption mode (`GCM`, `CCM` and `OCB` are
@ -372,9 +372,9 @@ added: v0.1.94
Instances of the `Decipher` class are used to decrypt data. The class can be Instances of the `Decipher` class are used to decrypt data. The class can be
used in one of two ways: used in one of two ways:
- As a [stream][] that is both readable and writable, where plain encrypted * As a [stream][] that is both readable and writable, where plain encrypted
data is written to produce unencrypted data on the readable side, or data is written to produce unencrypted data on the readable side, or
- Using the [`decipher.update()`][] and [`decipher.final()`][] methods to * Using the [`decipher.update()`][] and [`decipher.final()`][] methods to
produce the unencrypted data. produce the unencrypted data.
The [`crypto.createDecipher()`][] or [`crypto.createDecipheriv()`][] methods are The [`crypto.createDecipher()`][] or [`crypto.createDecipheriv()`][] methods are
@ -484,7 +484,7 @@ changes:
* `buffer` {Buffer | TypedArray | DataView} * `buffer` {Buffer | TypedArray | DataView}
* `options` {Object} [`stream.transform` options][] * `options` {Object} [`stream.transform` options][]
- `plaintextLength` {number} * `plaintextLength` {number}
* Returns: {Decipher} for method chaining. * Returns: {Decipher} for method chaining.
When using an authenticated encryption mode (`GCM`, `CCM` and `OCB` are When using an authenticated encryption mode (`GCM`, `CCM` and `OCB` are
@ -989,9 +989,9 @@ added: v0.1.92
The `Hash` class is a utility for creating hash digests of data. It can be The `Hash` class is a utility for creating hash digests of data. It can be
used in one of two ways: used in one of two ways:
- As a [stream][] that is both readable and writable, where data is written * As a [stream][] that is both readable and writable, where data is written
to produce a computed hash digest on the readable side, or to produce a computed hash digest on the readable side, or
- Using the [`hash.update()`][] and [`hash.digest()`][] methods to produce the * Using the [`hash.update()`][] and [`hash.digest()`][] methods to produce the
computed hash. computed hash.
The [`crypto.createHash()`][] method is used to create `Hash` instances. `Hash` The [`crypto.createHash()`][] method is used to create `Hash` instances. `Hash`
@ -1087,9 +1087,9 @@ added: v0.1.94
The `Hmac` class is a utility for creating cryptographic HMAC digests. It can The `Hmac` class is a utility for creating cryptographic HMAC digests. It can
be used in one of two ways: be used in one of two ways:
- As a [stream][] that is both readable and writable, where data is written * As a [stream][] that is both readable and writable, where data is written
to produce a computed HMAC digest on the readable side, or to produce a computed HMAC digest on the readable side, or
- Using the [`hmac.update()`][] and [`hmac.digest()`][] methods to produce the * Using the [`hmac.update()`][] and [`hmac.digest()`][] methods to produce the
computed HMAC digest. computed HMAC digest.
The [`crypto.createHmac()`][] method is used to create `Hmac` instances. `Hmac` The [`crypto.createHmac()`][] method is used to create `Hmac` instances. `Hmac`
@ -1303,9 +1303,9 @@ added: v0.1.92
The `Sign` class is a utility for generating signatures. It can be used in one The `Sign` class is a utility for generating signatures. It can be used in one
of two ways: of two ways:
- As a writable [stream][], where data to be signed is written and the * As a writable [stream][], where data to be signed is written and the
[`sign.sign()`][] method is used to generate and return the signature, or [`sign.sign()`][] method is used to generate and return the signature, or
- Using the [`sign.update()`][] and [`sign.sign()`][] methods to produce the * Using the [`sign.update()`][] and [`sign.sign()`][] methods to produce the
signature. signature.
The [`crypto.createSign()`][] method is used to create `Sign` instances. The The [`crypto.createSign()`][] method is used to create `Sign` instances. The
@ -1370,8 +1370,8 @@ changes:
--> -->
* `privateKey` {Object | string | Buffer | KeyObject} * `privateKey` {Object | string | Buffer | KeyObject}
- `padding` {integer} * `padding` {integer}
- `saltLength` {integer} * `saltLength` {integer}
* `outputEncoding` {string} The [encoding][] of the return value. * `outputEncoding` {string} The [encoding][] of the return value.
* Returns: {Buffer | string} * Returns: {Buffer | string}
@ -1432,9 +1432,9 @@ added: v0.1.92
The `Verify` class is a utility for verifying signatures. It can be used in one The `Verify` class is a utility for verifying signatures. It can be used in one
of two ways: of two ways:
- As a writable [stream][] where written data is used to validate against the * As a writable [stream][] where written data is used to validate against the
supplied signature, or supplied signature, or
- Using the [`verify.update()`][] and [`verify.verify()`][] methods to verify * Using the [`verify.update()`][] and [`verify.verify()`][] methods to verify
the signature. the signature.
The [`crypto.createVerify()`][] method is used to create `Verify` instances. The [`crypto.createVerify()`][] method is used to create `Verify` instances.
@ -1478,8 +1478,8 @@ changes:
--> -->
* `object` {Object | string | Buffer | KeyObject} * `object` {Object | string | Buffer | KeyObject}
- `padding` {integer} * `padding` {integer}
- `saltLength` {integer} * `saltLength` {integer}
* `signature` {string | Buffer | TypedArray | DataView} * `signature` {string | Buffer | TypedArray | DataView}
* `signatureEncoding` {string} The [encoding][] of the `signature` string. * `signatureEncoding` {string} The [encoding][] of the `signature` string.
* Returns: {boolean} `true` or `false` depending on the validity of the * Returns: {boolean} `true` or `false` depending on the validity of the
@ -1942,11 +1942,11 @@ added: v11.6.0
--> -->
* `key` {Object | string | Buffer} * `key` {Object | string | Buffer}
- `key`: {string | Buffer} The key material, either in PEM or DER format. * `key`: {string | Buffer} The key material, either in PEM or DER format.
- `format`: {string} Must be `'pem'` or `'der'`. **Default:** `'pem'`. * `format`: {string} Must be `'pem'` or `'der'`. **Default:** `'pem'`.
- `type`: {string} Must be `'pkcs1'`, `'pkcs8'` or `'sec1'`. This option is * `type`: {string} Must be `'pkcs1'`, `'pkcs8'` or `'sec1'`. This option is
required only if the `format` is `'der'` and ignored if it is `'pem'`. required only if the `format` is `'der'` and ignored if it is `'pem'`.
- `passphrase`: {string | Buffer} The passphrase to use for decryption. * `passphrase`: {string | Buffer} The passphrase to use for decryption.
* Returns: {KeyObject} * Returns: {KeyObject}
Creates and returns a new key object containing a private key. If `key` is a Creates and returns a new key object containing a private key. If `key` is a
@ -1970,9 +1970,9 @@ changes:
--> -->
* `key` {Object | string | Buffer | KeyObject} * `key` {Object | string | Buffer | KeyObject}
- `key`: {string | Buffer} * `key`: {string | Buffer}
- `format`: {string} Must be `'pem'` or `'der'`. **Default:** `'pem'`. * `format`: {string} Must be `'pem'` or `'der'`. **Default:** `'pem'`.
- `type`: {string} Must be `'pkcs1'` or `'spki'`. This option is required * `type`: {string} Must be `'pkcs1'` or `'spki'`. This option is required
only if the `format` is `'der'`. only if the `format` is `'der'`.
* Returns: {KeyObject} * Returns: {KeyObject}
@ -2060,16 +2060,16 @@ changes:
* `type`: {string} Must be `'rsa'`, `'dsa'`, `'ec'`, `'ed25519'`, `'ed448'`, * `type`: {string} Must be `'rsa'`, `'dsa'`, `'ec'`, `'ed25519'`, `'ed448'`,
`'x25519'`, or `'x448'`. `'x25519'`, or `'x448'`.
* `options`: {Object} * `options`: {Object}
- `modulusLength`: {number} Key size in bits (RSA, DSA). * `modulusLength`: {number} Key size in bits (RSA, DSA).
- `publicExponent`: {number} Public exponent (RSA). **Default:** `0x10001`. * `publicExponent`: {number} Public exponent (RSA). **Default:** `0x10001`.
- `divisorLength`: {number} Size of `q` in bits (DSA). * `divisorLength`: {number} Size of `q` in bits (DSA).
- `namedCurve`: {string} Name of the curve to use (EC). * `namedCurve`: {string} Name of the curve to use (EC).
- `publicKeyEncoding`: {Object} See [`keyObject.export()`][]. * `publicKeyEncoding`: {Object} See [`keyObject.export()`][].
- `privateKeyEncoding`: {Object} See [`keyObject.export()`][]. * `privateKeyEncoding`: {Object} See [`keyObject.export()`][].
* `callback`: {Function} * `callback`: {Function}
- `err`: {Error} * `err`: {Error}
- `publicKey`: {string | Buffer | KeyObject} * `publicKey`: {string | Buffer | KeyObject}
- `privateKey`: {string | Buffer | KeyObject} * `privateKey`: {string | Buffer | KeyObject}
Generates a new asymmetric key pair of the given `type`. RSA, DSA, EC, Ed25519 Generates a new asymmetric key pair of the given `type`. RSA, DSA, EC, Ed25519
and Ed448 are currently supported. and Ed448 are currently supported.
@ -2121,15 +2121,15 @@ changes:
* `type`: {string} Must be `'rsa'`, `'dsa'`, `'ec'`, `'ed25519'`, or `'ed448'`. * `type`: {string} Must be `'rsa'`, `'dsa'`, `'ec'`, `'ed25519'`, or `'ed448'`.
* `options`: {Object} * `options`: {Object}
- `modulusLength`: {number} Key size in bits (RSA, DSA). * `modulusLength`: {number} Key size in bits (RSA, DSA).
- `publicExponent`: {number} Public exponent (RSA). **Default:** `0x10001`. * `publicExponent`: {number} Public exponent (RSA). **Default:** `0x10001`.
- `divisorLength`: {number} Size of `q` in bits (DSA). * `divisorLength`: {number} Size of `q` in bits (DSA).
- `namedCurve`: {string} Name of the curve to use (EC). * `namedCurve`: {string} Name of the curve to use (EC).
- `publicKeyEncoding`: {Object} See [`keyObject.export()`][]. * `publicKeyEncoding`: {Object} See [`keyObject.export()`][].
- `privateKeyEncoding`: {Object} See [`keyObject.export()`][]. * `privateKeyEncoding`: {Object} See [`keyObject.export()`][].
* Returns: {Object} * Returns: {Object}
- `publicKey`: {string | Buffer | KeyObject} * `publicKey`: {string | Buffer | KeyObject}
- `privateKey`: {string | Buffer | KeyObject} * `privateKey`: {string | Buffer | KeyObject}
Generates a new asymmetric key pair of the given `type`. RSA, DSA, EC, Ed25519 Generates a new asymmetric key pair of the given `type`. RSA, DSA, EC, Ed25519
and Ed448 are currently supported. and Ed448 are currently supported.
@ -2268,8 +2268,8 @@ changes:
* `keylen` {number} * `keylen` {number}
* `digest` {string} * `digest` {string}
* `callback` {Function} * `callback` {Function}
- `err` {Error} * `err` {Error}
- `derivedKey` {Buffer} * `derivedKey` {Buffer}
Provides an asynchronous Password-Based Key Derivation Function 2 (PBKDF2) Provides an asynchronous Password-Based Key Derivation Function 2 (PBKDF2)
implementation. A selected HMAC digest algorithm specified by `digest` is implementation. A selected HMAC digest algorithm specified by `digest` is
@ -2395,11 +2395,9 @@ changes:
--> -->
* `privateKey` {Object | string | Buffer | KeyObject} * `privateKey` {Object | string | Buffer | KeyObject}
- `oaepHash` {string} The hash function to use for OAEP padding. * `oaepHash` {string} The hash function to use for OAEP padding.
**Default:** `'sha1'` **Default:** `'sha1'`
- `oaepLabel` {Buffer | TypedArray | DataView} The label to use for OAEP * `padding` {crypto.constants} An optional padding value defined in
padding. If not specified, no label is used.
- `padding` {crypto.constants} An optional padding value defined in
`crypto.constants`, which may be: `crypto.constants.RSA_NO_PADDING`, `crypto.constants`, which may be: `crypto.constants.RSA_NO_PADDING`,
`crypto.constants.RSA_PKCS1_PADDING`, or `crypto.constants.RSA_PKCS1_PADDING`, or
`crypto.constants.RSA_PKCS1_OAEP_PADDING`. `crypto.constants.RSA_PKCS1_OAEP_PADDING`.
@ -2424,9 +2422,9 @@ changes:
--> -->
* `privateKey` {Object | string | Buffer | KeyObject} * `privateKey` {Object | string | Buffer | KeyObject}
- `key` {string | Buffer | KeyObject} A PEM encoded private key. * `key` {string | Buffer | KeyObject} A PEM encoded private key.
- `passphrase` {string | Buffer} An optional passphrase for the private key. * `passphrase` {string | Buffer} An optional passphrase for the private key.
- `padding` {crypto.constants} An optional padding value defined in * `padding` {crypto.constants} An optional padding value defined in
`crypto.constants`, which may be: `crypto.constants.RSA_NO_PADDING` or `crypto.constants`, which may be: `crypto.constants.RSA_NO_PADDING` or
`crypto.constants.RSA_PKCS1_PADDING`. `crypto.constants.RSA_PKCS1_PADDING`.
* `buffer` {Buffer | TypedArray | DataView} * `buffer` {Buffer | TypedArray | DataView}
@ -2450,8 +2448,8 @@ changes:
--> -->
* `key` {Object | string | Buffer | KeyObject} * `key` {Object | string | Buffer | KeyObject}
- `passphrase` {string | Buffer} An optional passphrase for the private key. * `passphrase` {string | Buffer} An optional passphrase for the private key.
- `padding` {crypto.constants} An optional padding value defined in * `padding` {crypto.constants} An optional padding value defined in
`crypto.constants`, which may be: `crypto.constants.RSA_NO_PADDING` or `crypto.constants`, which may be: `crypto.constants.RSA_NO_PADDING` or
`crypto.constants.RSA_PKCS1_PADDING`. `crypto.constants.RSA_PKCS1_PADDING`.
* `buffer` {Buffer | TypedArray | DataView} * `buffer` {Buffer | TypedArray | DataView}
@ -2484,13 +2482,11 @@ changes:
--> -->
* `key` {Object | string | Buffer | KeyObject} * `key` {Object | string | Buffer | KeyObject}
- `key` {string | Buffer | KeyObject} A PEM encoded public or private key. * `key` {string | Buffer | KeyObject} A PEM encoded public or private key.
- `oaepLabel` {Buffer | TypedArray | DataView} The label to use for OAEP * `oaepHash` {string} The hash function to use for OAEP padding.
padding. If not specified, no label is used.
- `oaepHash` {string} The hash function to use for OAEP padding.
**Default:** `'sha1'` **Default:** `'sha1'`
- `passphrase` {string | Buffer} An optional passphrase for the private key. * `passphrase` {string | Buffer} An optional passphrase for the private key.
- `padding` {crypto.constants} An optional padding value defined in * `padding` {crypto.constants} An optional padding value defined in
`crypto.constants`, which may be: `crypto.constants.RSA_NO_PADDING`, `crypto.constants`, which may be: `crypto.constants.RSA_NO_PADDING`,
`crypto.constants.RSA_PKCS1_PADDING`, or `crypto.constants.RSA_PKCS1_PADDING`, or
`crypto.constants.RSA_PKCS1_OAEP_PADDING`. `crypto.constants.RSA_PKCS1_OAEP_PADDING`.
@ -2521,8 +2517,8 @@ changes:
* `size` {number} * `size` {number}
* `callback` {Function} * `callback` {Function}
- `err` {Error} * `err` {Error}
- `buf` {Buffer} * `buf` {Buffer}
* Returns: {Buffer} if the `callback` function is not provided. * Returns: {Buffer} if the `callback` function is not provided.
Generates cryptographically strong pseudo-random data. The `size` argument Generates cryptographically strong pseudo-random data. The `size` argument
@ -2706,18 +2702,18 @@ changes:
* `salt` {string|Buffer|TypedArray|DataView} * `salt` {string|Buffer|TypedArray|DataView}
* `keylen` {number} * `keylen` {number}
* `options` {Object} * `options` {Object}
- `cost` {number} CPU/memory cost parameter. Must be a power of two greater * `cost` {number} CPU/memory cost parameter. Must be a power of two greater
than one. **Default:** `16384`. than one. **Default:** `16384`.
- `blockSize` {number} Block size parameter. **Default:** `8`. * `blockSize` {number} Block size parameter. **Default:** `8`.
- `parallelization` {number} Parallelization parameter. **Default:** `1`. * `parallelization` {number} Parallelization parameter. **Default:** `1`.
- `N` {number} Alias for `cost`. Only one of both may be specified. * `N` {number} Alias for `cost`. Only one of both may be specified.
- `r` {number} Alias for `blockSize`. Only one of both may be specified. * `r` {number} Alias for `blockSize`. Only one of both may be specified.
- `p` {number} Alias for `parallelization`. Only one of both may be specified. * `p` {number} Alias for `parallelization`. Only one of both may be specified.
- `maxmem` {number} Memory upper bound. It is an error when (approximately) * `maxmem` {number} Memory upper bound. It is an error when (approximately)
`128 * N * r > maxmem`. **Default:** `32 * 1024 * 1024`. `128 * N * r > maxmem`. **Default:** `32 * 1024 * 1024`.
* `callback` {Function} * `callback` {Function}
- `err` {Error} * `err` {Error}
- `derivedKey` {Buffer} * `derivedKey` {Buffer}
Provides an asynchronous [scrypt][] implementation. Scrypt is a password-based Provides an asynchronous [scrypt][] implementation. Scrypt is a password-based
key derivation function that is designed to be expensive computationally and key derivation function that is designed to be expensive computationally and
@ -2764,14 +2760,14 @@ changes:
* `salt` {string|Buffer|TypedArray|DataView} * `salt` {string|Buffer|TypedArray|DataView}
* `keylen` {number} * `keylen` {number}
* `options` {Object} * `options` {Object}
- `cost` {number} CPU/memory cost parameter. Must be a power of two greater * `cost` {number} CPU/memory cost parameter. Must be a power of two greater
than one. **Default:** `16384`. than one. **Default:** `16384`.
- `blockSize` {number} Block size parameter. **Default:** `8`. * `blockSize` {number} Block size parameter. **Default:** `8`.
- `parallelization` {number} Parallelization parameter. **Default:** `1`. * `parallelization` {number} Parallelization parameter. **Default:** `1`.
- `N` {number} Alias for `cost`. Only one of both may be specified. * `N` {number} Alias for `cost`. Only one of both may be specified.
- `r` {number} Alias for `blockSize`. Only one of both may be specified. * `r` {number} Alias for `blockSize`. Only one of both may be specified.
- `p` {number} Alias for `parallelization`. Only one of both may be specified. * `p` {number} Alias for `parallelization`. Only one of both may be specified.
- `maxmem` {number} Memory upper bound. It is an error when (approximately) * `maxmem` {number} Memory upper bound. It is an error when (approximately)
`128 * N * r > maxmem`. **Default:** `32 * 1024 * 1024`. `128 * N * r > maxmem`. **Default:** `32 * 1024 * 1024`.
* Returns: {Buffer} * Returns: {Buffer}
@ -2970,12 +2966,12 @@ algorithm and key size according to their security requirements.
Based on the recommendations of [NIST SP 800-131A][]: Based on the recommendations of [NIST SP 800-131A][]:
- MD5 and SHA-1 are no longer acceptable where collision resistance is * MD5 and SHA-1 are no longer acceptable where collision resistance is
required such as digital signatures. required such as digital signatures.
- The key used with RSA, DSA, and DH algorithms is recommended to have * The key used with RSA, DSA, and DH algorithms is recommended to have
at least 2048 bits and that of the curve of ECDSA and ECDH at least at least 2048 bits and that of the curve of ECDSA and ECDH at least
224 bits, to be safe to use for several years. 224 bits, to be safe to use for several years.
- The DH groups of `modp1`, `modp2` and `modp5` have a key size * The DH groups of `modp1`, `modp2` and `modp5` have a key size
smaller than 2048 bits and are not recommended. smaller than 2048 bits and are not recommended.
See the reference for other recommendations and details. See the reference for other recommendations and details.
@ -2985,24 +2981,24 @@ See the reference for other recommendations and details.
CCM is one of the supported [AEAD algorithms][]. Applications which use this CCM is one of the supported [AEAD algorithms][]. Applications which use this
mode must adhere to certain restrictions when using the cipher API: mode must adhere to certain restrictions when using the cipher API:
- The authentication tag length must be specified during cipher creation by * The authentication tag length must be specified during cipher creation by
setting the `authTagLength` option and must be one of 4, 6, 8, 10, 12, 14 or setting the `authTagLength` option and must be one of 4, 6, 8, 10, 12, 14 or
16 bytes. 16 bytes.
- The length of the initialization vector (nonce) `N` must be between 7 and 13 * The length of the initialization vector (nonce) `N` must be between 7 and 13
bytes (`7 ≤ N ≤ 13`). bytes (`7 ≤ N ≤ 13`).
- The length of the plaintext is limited to `2 ** (8 * (15 - N))` bytes. * The length of the plaintext is limited to `2 ** (8 * (15 - N))` bytes.
- When decrypting, the authentication tag must be set via `setAuthTag()` before * When decrypting, the authentication tag must be set via `setAuthTag()` before
calling `update()`. calling `update()`.
Otherwise, decryption will fail and `final()` will throw an error in Otherwise, decryption will fail and `final()` will throw an error in
compliance with section 2.6 of [RFC 3610][]. compliance with section 2.6 of [RFC 3610][].
- Using stream methods such as `write(data)`, `end(data)` or `pipe()` in CCM * Using stream methods such as `write(data)`, `end(data)` or `pipe()` in CCM
mode might fail as CCM cannot handle more than one chunk of data per instance. mode might fail as CCM cannot handle more than one chunk of data per instance.
- When passing additional authenticated data (AAD), the length of the actual * When passing additional authenticated data (AAD), the length of the actual
message in bytes must be passed to `setAAD()` via the `plaintextLength` message in bytes must be passed to `setAAD()` via the `plaintextLength`
option. This is not necessary if no AAD is used. option. This is not necessary if no AAD is used.
- As CCM processes the whole message at once, `update()` can only be called * As CCM processes the whole message at once, `update()` can only be called
once. once.
- Even though calling `update()` is sufficient to encrypt/decrypt the message, * Even though calling `update()` is sufficient to encrypt/decrypt the message,
applications *must* call `final()` to compute or verify the applications *must* call `final()` to compute or verify the
authentication tag. authentication tag.

View File

@ -1715,19 +1715,19 @@ Since Node.js versions 4.4.0 and 5.2.0, several modules only intended for
internal usage were mistakenly exposed to user code through `require()`. These internal usage were mistakenly exposed to user code through `require()`. These
modules were: modules were:
- `v8/tools/codemap` * `v8/tools/codemap`
- `v8/tools/consarray` * `v8/tools/consarray`
- `v8/tools/csvparser` * `v8/tools/csvparser`
- `v8/tools/logreader` * `v8/tools/logreader`
- `v8/tools/profile_view` * `v8/tools/profile_view`
- `v8/tools/profile` * `v8/tools/profile`
- `v8/tools/SourceMap` * `v8/tools/SourceMap`
- `v8/tools/splaytree` * `v8/tools/splaytree`
- `v8/tools/tickprocessor-driver` * `v8/tools/tickprocessor-driver`
- `v8/tools/tickprocessor` * `v8/tools/tickprocessor`
- `node-inspect/lib/_inspect` (from 7.6.0) * `node-inspect/lib/_inspect` (from 7.6.0)
- `node-inspect/lib/internal/inspect_client` (from 7.6.0) * `node-inspect/lib/internal/inspect_client` (from 7.6.0)
- `node-inspect/lib/internal/inspect_repl` (from 7.6.0) * `node-inspect/lib/internal/inspect_repl` (from 7.6.0)
The `v8/*` modules do not have any exports, and if not imported in a specific The `v8/*` modules do not have any exports, and if not imported in a specific
order would in fact throw errors. As such there are virtually no legitimate use order would in fact throw errors. As such there are virtually no legitimate use

View File

@ -449,13 +449,13 @@ client.connect(41234, 'localhost', (err) => {
The maximum size of an `IPv4/v6` datagram depends on the `MTU` The maximum size of an `IPv4/v6` datagram depends on the `MTU`
(_Maximum Transmission Unit_) and on the `Payload Length` field size. (_Maximum Transmission Unit_) and on the `Payload Length` field size.
- The `Payload Length` field is `16 bits` wide, which means that a normal * The `Payload Length` field is `16 bits` wide, which means that a normal
payload exceed 64K octets _including_ the internet header and data payload exceed 64K octets _including_ the internet header and data
(65,507 bytes = 65,535 8 bytes UDP header 20 bytes IP header); (65,507 bytes = 65,535 8 bytes UDP header 20 bytes IP header);
this is generally true for loopback interfaces, but such long datagram this is generally true for loopback interfaces, but such long datagram
messages are impractical for most hosts and networks. messages are impractical for most hosts and networks.
- The `MTU` is the largest size a given link layer technology can support for * The `MTU` is the largest size a given link layer technology can support for
datagram messages. For any link, `IPv4` mandates a minimum `MTU` of `68` datagram messages. For any link, `IPv4` mandates a minimum `MTU` of `68`
octets, while the recommended `MTU` for IPv4 is `576` (typically recommended octets, while the recommended `MTU` for IPv4 is `576` (typically recommended
as the `MTU` for dial-up type applications), whether they arrive whole or in as the `MTU` for dial-up type applications), whether they arrive whole or in

View File

@ -142,23 +142,23 @@ changes:
* `hostname` {string} * `hostname` {string}
* `options` {integer | Object} * `options` {integer | Object}
- `family` {integer} The record family. Must be `4`, `6`, or `0`. The value * `family` {integer} The record family. Must be `4`, `6`, or `0`. The value
`0` indicates that IPv4 and IPv6 addresses are both returned. **Default:** `0` indicates that IPv4 and IPv6 addresses are both returned. **Default:**
`0`. `0`.
- `hints` {number} One or more [supported `getaddrinfo` flags][]. Multiple * `hints` {number} One or more [supported `getaddrinfo` flags][]. Multiple
flags may be passed by bitwise `OR`ing their values. flags may be passed by bitwise `OR`ing their values.
- `all` {boolean} When `true`, the callback returns all resolved addresses in * `all` {boolean} When `true`, the callback returns all resolved addresses in
an array. Otherwise, returns a single address. **Default:** `false`. an array. Otherwise, returns a single address. **Default:** `false`.
- `verbatim` {boolean} When `true`, the callback receives IPv4 and IPv6 * `verbatim` {boolean} When `true`, the callback receives IPv4 and IPv6
addresses in the order the DNS resolver returned them. When `false`, addresses in the order the DNS resolver returned them. When `false`,
IPv4 addresses are placed before IPv6 addresses. IPv4 addresses are placed before IPv6 addresses.
**Default:** currently `false` (addresses are reordered) but this is **Default:** currently `false` (addresses are reordered) but this is
expected to change in the not too distant future. expected to change in the not too distant future.
New code should use `{ verbatim: true }`. New code should use `{ verbatim: true }`.
* `callback` {Function} * `callback` {Function}
- `err` {Error} * `err` {Error}
- `address` {string} A string representation of an IPv4 or IPv6 address. * `address` {string} A string representation of an IPv4 or IPv6 address.
- `family` {integer} `4` or `6`, denoting the family of `address`, or `0` if * `family` {integer} `4` or `6`, denoting the family of `address`, or `0` if
the address is not an IPv4 or IPv6 address. `0` is a likely indicator of a the address is not an IPv4 or IPv6 address. `0` is a likely indicator of a
bug in the name resolution service used by the operating system. bug in the name resolution service used by the operating system.
@ -210,11 +210,11 @@ is not set to `true`, it returns a `Promise` for an `Object` with `address` and
The following flags can be passed as hints to [`dns.lookup()`][]. The following flags can be passed as hints to [`dns.lookup()`][].
- `dns.ADDRCONFIG`: Returned address types are determined by the types * `dns.ADDRCONFIG`: Returned address types are determined by the types
of addresses supported by the current system. For example, IPv4 addresses of addresses supported by the current system. For example, IPv4 addresses
are only returned if the current system has at least one IPv4 address are only returned if the current system has at least one IPv4 address
configured. Loopback addresses are not considered. configured. Loopback addresses are not considered.
- `dns.V4MAPPED`: If the IPv6 family was specified, but no IPv6 addresses were * `dns.V4MAPPED`: If the IPv6 family was specified, but no IPv6 addresses were
found, then return IPv4 mapped IPv6 addresses. It is not supported found, then return IPv4 mapped IPv6 addresses. It is not supported
on some operating systems (e.g FreeBSD 10.1). on some operating systems (e.g FreeBSD 10.1).
@ -226,9 +226,9 @@ added: v0.11.14
* `address` {string} * `address` {string}
* `port` {number} * `port` {number}
* `callback` {Function} * `callback` {Function}
- `err` {Error} * `err` {Error}
- `hostname` {string} e.g. `example.com` * `hostname` {string} e.g. `example.com`
- `service` {string} e.g. `http` * `service` {string} e.g. `http`
Resolves the given `address` and `port` into a hostname and service using Resolves the given `address` and `port` into a hostname and service using
the operating system's underlying `getnameinfo` implementation. the operating system's underlying `getnameinfo` implementation.
@ -258,8 +258,8 @@ added: v0.1.27
* `hostname` {string} Hostname to resolve. * `hostname` {string} Hostname to resolve.
* `rrtype` {string} Resource record type. **Default:** `'A'`. * `rrtype` {string} Resource record type. **Default:** `'A'`.
* `callback` {Function} * `callback` {Function}
- `err` {Error} * `err` {Error}
- `records` {string[] | Object[] | Object} * `records` {string[] | Object[] | Object}
Uses the DNS protocol to resolve a hostname (e.g. `'nodejs.org'`) into an array Uses the DNS protocol to resolve a hostname (e.g. `'nodejs.org'`) into an array
of the resource records. The `callback` function has arguments of the resource records. The `callback` function has arguments
@ -295,13 +295,13 @@ changes:
* `hostname` {string} Hostname to resolve. * `hostname` {string} Hostname to resolve.
* `options` {Object} * `options` {Object}
- `ttl` {boolean} Retrieve the Time-To-Live value (TTL) of each record. * `ttl` {boolean} Retrieve the Time-To-Live value (TTL) of each record.
When `true`, the callback receives an array of When `true`, the callback receives an array of
`{ address: '1.2.3.4', ttl: 60 }` objects rather than an array of strings, `{ address: '1.2.3.4', ttl: 60 }` objects rather than an array of strings,
with the TTL expressed in seconds. with the TTL expressed in seconds.
* `callback` {Function} * `callback` {Function}
- `err` {Error} * `err` {Error}
- `addresses` {string[] | Object[]} * `addresses` {string[] | Object[]}
Uses the DNS protocol to resolve a IPv4 addresses (`A` records) for the Uses the DNS protocol to resolve a IPv4 addresses (`A` records) for the
`hostname`. The `addresses` argument passed to the `callback` function `hostname`. The `addresses` argument passed to the `callback` function
@ -320,13 +320,13 @@ changes:
* `hostname` {string} Hostname to resolve. * `hostname` {string} Hostname to resolve.
* `options` {Object} * `options` {Object}
- `ttl` {boolean} Retrieve the Time-To-Live value (TTL) of each record. * `ttl` {boolean} Retrieve the Time-To-Live value (TTL) of each record.
When `true`, the callback receives an array of When `true`, the callback receives an array of
`{ address: '0:1:2:3:4:5:6:7', ttl: 60 }` objects rather than an array of `{ address: '0:1:2:3:4:5:6:7', ttl: 60 }` objects rather than an array of
strings, with the TTL expressed in seconds. strings, with the TTL expressed in seconds.
* `callback` {Function} * `callback` {Function}
- `err` {Error} * `err` {Error}
- `addresses` {string[] | Object[]} * `addresses` {string[] | Object[]}
Uses the DNS protocol to resolve a IPv6 addresses (`AAAA` records) for the Uses the DNS protocol to resolve a IPv6 addresses (`AAAA` records) for the
`hostname`. The `addresses` argument passed to the `callback` function `hostname`. The `addresses` argument passed to the `callback` function
@ -336,8 +336,8 @@ will contain an array of IPv6 addresses.
* `hostname` {string} * `hostname` {string}
* `callback` {Function} * `callback` {Function}
- `err` {Error} * `err` {Error}
- `ret` {Object[]} * `ret` {Object[]}
Uses the DNS protocol to resolve all records (also known as `ANY` or `*` query). Uses the DNS protocol to resolve all records (also known as `ANY` or `*` query).
The `ret` argument passed to the `callback` function will be an array containing The `ret` argument passed to the `callback` function will be an array containing
@ -388,8 +388,8 @@ added: v0.3.2
* `hostname` {string} * `hostname` {string}
* `callback` {Function} * `callback` {Function}
- `err` {Error} * `err` {Error}
- `addresses` {string[]} * `addresses` {string[]}
Uses the DNS protocol to resolve `CNAME` records for the `hostname`. The Uses the DNS protocol to resolve `CNAME` records for the `hostname`. The
`addresses` argument passed to the `callback` function `addresses` argument passed to the `callback` function
@ -403,8 +403,8 @@ added: v0.1.27
* `hostname` {string} * `hostname` {string}
* `callback` {Function} * `callback` {Function}
- `err` {Error} * `err` {Error}
- `addresses` {Object[]} * `addresses` {Object[]}
Uses the DNS protocol to resolve mail exchange records (`MX` records) for the Uses the DNS protocol to resolve mail exchange records (`MX` records) for the
`hostname`. The `addresses` argument passed to the `callback` function will `hostname`. The `addresses` argument passed to the `callback` function will
@ -418,8 +418,8 @@ added: v0.9.12
* `hostname` {string} * `hostname` {string}
* `callback` {Function} * `callback` {Function}
- `err` {Error} * `err` {Error}
- `addresses` {Object[]} * `addresses` {Object[]}
Uses the DNS protocol to resolve regular expression based records (`NAPTR` Uses the DNS protocol to resolve regular expression based records (`NAPTR`
records) for the `hostname`. The `addresses` argument passed to the `callback` records) for the `hostname`. The `addresses` argument passed to the `callback`
@ -451,8 +451,8 @@ added: v0.1.90
* `hostname` {string} * `hostname` {string}
* `callback` {Function} * `callback` {Function}
- `err` {Error} * `err` {Error}
- `addresses` {string[]} * `addresses` {string[]}
Uses the DNS protocol to resolve name server records (`NS` records) for the Uses the DNS protocol to resolve name server records (`NS` records) for the
`hostname`. The `addresses` argument passed to the `callback` function will `hostname`. The `addresses` argument passed to the `callback` function will
@ -466,8 +466,8 @@ added: v6.0.0
* `hostname` {string} * `hostname` {string}
* `callback` {Function} * `callback` {Function}
- `err` {Error} * `err` {Error}
- `addresses` {string[]} * `addresses` {string[]}
Uses the DNS protocol to resolve pointer records (`PTR` records) for the Uses the DNS protocol to resolve pointer records (`PTR` records) for the
`hostname`. The `addresses` argument passed to the `callback` function will `hostname`. The `addresses` argument passed to the `callback` function will
@ -480,8 +480,8 @@ added: v0.11.10
* `hostname` {string} * `hostname` {string}
* `callback` {Function} * `callback` {Function}
- `err` {Error} * `err` {Error}
- `address` {Object} * `address` {Object}
Uses the DNS protocol to resolve a start of authority record (`SOA` record) for Uses the DNS protocol to resolve a start of authority record (`SOA` record) for
the `hostname`. The `address` argument passed to the `callback` function will the `hostname`. The `address` argument passed to the `callback` function will
@ -515,8 +515,8 @@ added: v0.1.27
* `hostname` {string} * `hostname` {string}
* `callback` {Function} * `callback` {Function}
- `err` {Error} * `err` {Error}
- `addresses` {Object[]} * `addresses` {Object[]}
Uses the DNS protocol to resolve service records (`SRV` records) for the Uses the DNS protocol to resolve service records (`SRV` records) for the
`hostname`. The `addresses` argument passed to the `callback` function will `hostname`. The `addresses` argument passed to the `callback` function will
@ -544,8 +544,8 @@ added: v0.1.27
* `hostname` {string} * `hostname` {string}
* `callback` {Function} * `callback` {Function}
- `err` {Error} * `err` {Error}
- `records` <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#String_type" class="type">&lt;string[][]&gt;</a> * `records` <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#String_type" class="type">&lt;string[][]&gt;</a>
Uses the DNS protocol to resolve text queries (`TXT` records) for the Uses the DNS protocol to resolve text queries (`TXT` records) for the
`hostname`. The `records` argument passed to the `callback` function is a `hostname`. The `records` argument passed to the `callback` function is a
@ -561,8 +561,8 @@ added: v0.1.16
* `ip` {string} * `ip` {string}
* `callback` {Function} * `callback` {Function}
- `err` {Error} * `err` {Error}
- `hostnames` {string[]} * `hostnames` {string[]}
Performs a reverse DNS query that resolves an IPv4 or IPv6 address to an Performs a reverse DNS query that resolves an IPv4 or IPv6 address to an
array of hostnames. array of hostnames.
@ -686,14 +686,14 @@ added: v10.6.0
* `hostname` {string} * `hostname` {string}
* `options` {integer | Object} * `options` {integer | Object}
- `family` {integer} The record family. Must be `4`, `6`, or `0`. The value * `family` {integer} The record family. Must be `4`, `6`, or `0`. The value
`0` indicates that IPv4 and IPv6 addresses are both returned. **Default:** `0` indicates that IPv4 and IPv6 addresses are both returned. **Default:**
`0`. `0`.
- `hints` {number} One or more [supported `getaddrinfo` flags][]. Multiple * `hints` {number} One or more [supported `getaddrinfo` flags][]. Multiple
flags may be passed by bitwise `OR`ing their values. flags may be passed by bitwise `OR`ing their values.
- `all` {boolean} When `true`, the `Promise` is resolved with all addresses in * `all` {boolean} When `true`, the `Promise` is resolved with all addresses in
an array. Otherwise, returns a single address. **Default:** `false`. an array. Otherwise, returns a single address. **Default:** `false`.
- `verbatim` {boolean} When `true`, the `Promise` is resolved with IPv4 and * `verbatim` {boolean} When `true`, the `Promise` is resolved with IPv4 and
IPv6 addresses in the order the DNS resolver returned them. When `false`, IPv6 addresses in the order the DNS resolver returned them. When `false`,
IPv4 addresses are placed before IPv6 addresses. IPv4 addresses are placed before IPv6 addresses.
**Default:** currently `false` (addresses are reordered) but this is **Default:** currently `false` (addresses are reordered) but this is
@ -807,7 +807,7 @@ added: v10.6.0
* `hostname` {string} Hostname to resolve. * `hostname` {string} Hostname to resolve.
* `options` {Object} * `options` {Object}
- `ttl` {boolean} Retrieve the Time-To-Live value (TTL) of each record. * `ttl` {boolean} Retrieve the Time-To-Live value (TTL) of each record.
When `true`, the `Promise` is resolved with an array of When `true`, the `Promise` is resolved with an array of
`{ address: '1.2.3.4', ttl: 60 }` objects rather than an array of strings, `{ address: '1.2.3.4', ttl: 60 }` objects rather than an array of strings,
with the TTL expressed in seconds. with the TTL expressed in seconds.
@ -823,7 +823,7 @@ added: v10.6.0
* `hostname` {string} Hostname to resolve. * `hostname` {string} Hostname to resolve.
* `options` {Object} * `options` {Object}
- `ttl` {boolean} Retrieve the Time-To-Live value (TTL) of each record. * `ttl` {boolean} Retrieve the Time-To-Live value (TTL) of each record.
When `true`, the `Promise` is resolved with an array of When `true`, the `Promise` is resolved with an array of
`{ address: '0:1:2:3:4:5:6:7', ttl: 60 }` objects rather than an array of `{ address: '0:1:2:3:4:5:6:7', ttl: 60 }` objects rather than an array of
strings, with the TTL expressed in seconds. strings, with the TTL expressed in seconds.
@ -1074,30 +1074,30 @@ earlier ones time out or result in some other error.
Each DNS query can return one of the following error codes: Each DNS query can return one of the following error codes:
- `dns.NODATA`: DNS server returned answer with no data. * `dns.NODATA`: DNS server returned answer with no data.
- `dns.FORMERR`: DNS server claims query was misformatted. * `dns.FORMERR`: DNS server claims query was misformatted.
- `dns.SERVFAIL`: DNS server returned general failure. * `dns.SERVFAIL`: DNS server returned general failure.
- `dns.NOTFOUND`: Domain name not found. * `dns.NOTFOUND`: Domain name not found.
- `dns.NOTIMP`: DNS server does not implement requested operation. * `dns.NOTIMP`: DNS server does not implement requested operation.
- `dns.REFUSED`: DNS server refused query. * `dns.REFUSED`: DNS server refused query.
- `dns.BADQUERY`: Misformatted DNS query. * `dns.BADQUERY`: Misformatted DNS query.
- `dns.BADNAME`: Misformatted hostname. * `dns.BADNAME`: Misformatted hostname.
- `dns.BADFAMILY`: Unsupported address family. * `dns.BADFAMILY`: Unsupported address family.
- `dns.BADRESP`: Misformatted DNS reply. * `dns.BADRESP`: Misformatted DNS reply.
- `dns.CONNREFUSED`: Could not contact DNS servers. * `dns.CONNREFUSED`: Could not contact DNS servers.
- `dns.TIMEOUT`: Timeout while contacting DNS servers. * `dns.TIMEOUT`: Timeout while contacting DNS servers.
- `dns.EOF`: End of file. * `dns.EOF`: End of file.
- `dns.FILE`: Error reading file. * `dns.FILE`: Error reading file.
- `dns.NOMEM`: Out of memory. * `dns.NOMEM`: Out of memory.
- `dns.DESTRUCTION`: Channel is being destroyed. * `dns.DESTRUCTION`: Channel is being destroyed.
- `dns.BADSTR`: Misformatted string. * `dns.BADSTR`: Misformatted string.
- `dns.BADFLAGS`: Illegal flags specified. * `dns.BADFLAGS`: Illegal flags specified.
- `dns.NONAME`: Given hostname is not numeric. * `dns.NONAME`: Given hostname is not numeric.
- `dns.BADHINTS`: Illegal hints flags specified. * `dns.BADHINTS`: Illegal hints flags specified.
- `dns.NOTINITIALIZED`: c-ares library initialization not yet performed. * `dns.NOTINITIALIZED`: c-ares library initialization not yet performed.
- `dns.LOADIPHLPAPI`: Error loading `iphlpapi.dll`. * `dns.LOADIPHLPAPI`: Error loading `iphlpapi.dll`.
- `dns.ADDRGETNETWORKPARAMS`: Could not find `GetNetworkParams` function. * `dns.ADDRGETNETWORKPARAMS`: Could not find `GetNetworkParams` function.
- `dns.CANCELLED`: DNS query cancelled. * `dns.CANCELLED`: DNS query cancelled.
## Implementation considerations ## Implementation considerations

View File

@ -6,13 +6,13 @@
Applications running in Node.js will generally experience four categories of Applications running in Node.js will generally experience four categories of
errors: errors:
- Standard JavaScript errors such as {EvalError}, {SyntaxError}, {RangeError}, * Standard JavaScript errors such as {EvalError}, {SyntaxError}, {RangeError},
{ReferenceError}, {TypeError}, and {URIError}. {ReferenceError}, {TypeError}, and {URIError}.
- System errors triggered by underlying operating system constraints such * System errors triggered by underlying operating system constraints such
as attempting to open a file that does not exist or attempting to send data as attempting to open a file that does not exist or attempting to send data
over a closed socket. over a closed socket.
- User-specified errors triggered by application code. * User-specified errors triggered by application code.
- `AssertionError`s are a special class of error that can be triggered when * `AssertionError`s are a special class of error that can be triggered when
Node.js detects an exceptional logic violation that should never occur. These Node.js detects an exceptional logic violation that should never occur. These
are raised typically by the `assert` module. are raised typically by the `assert` module.
@ -54,7 +54,7 @@ to report errors.
Errors that occur within _Asynchronous APIs_ may be reported in multiple ways: Errors that occur within _Asynchronous APIs_ may be reported in multiple ways:
- Most asynchronous methods that accept a `callback` function will accept an * Most asynchronous methods that accept a `callback` function will accept an
`Error` object passed as the first argument to that function. If that first `Error` object passed as the first argument to that function. If that first
argument is not `null` and is an instance of `Error`, then an error occurred argument is not `null` and is an instance of `Error`, then an error occurred
that should be handled. that should be handled.
@ -71,7 +71,7 @@ Errors that occur within _Asynchronous APIs_ may be reported in multiple ways:
}); });
``` ```
- When an asynchronous method is called on an object that is an * When an asynchronous method is called on an object that is an
[`EventEmitter`][], errors can be routed to that object's `'error'` event. [`EventEmitter`][], errors can be routed to that object's `'error'` event.
```js ```js
@ -89,7 +89,7 @@ Errors that occur within _Asynchronous APIs_ may be reported in multiple ways:
connection.pipe(process.stdout); connection.pipe(process.stdout);
``` ```
- A handful of typically asynchronous methods in the Node.js API may still * A handful of typically asynchronous methods in the Node.js API may still
use the `throw` mechanism to raise exceptions that must be handled using use the `throw` mechanism to raise exceptions that must be handled using
`try…catch`. There is no comprehensive list of such methods; please `try…catch`. There is no comprehensive list of such methods; please
refer to the documentation of each method to determine the appropriate refer to the documentation of each method to determine the appropriate
@ -502,29 +502,29 @@ The `error.syscall` property is a string describing the [syscall][] that failed.
This is a list of system errors commonly-encountered when writing a Node.js This is a list of system errors commonly-encountered when writing a Node.js
program. For a comprehensive list, see the [`errno`(3) man page][]. program. For a comprehensive list, see the [`errno`(3) man page][].
- `EACCES` (Permission denied): An attempt was made to access a file in a way * `EACCES` (Permission denied): An attempt was made to access a file in a way
forbidden by its file access permissions. forbidden by its file access permissions.
- `EADDRINUSE` (Address already in use): An attempt to bind a server * `EADDRINUSE` (Address already in use): An attempt to bind a server
([`net`][], [`http`][], or [`https`][]) to a local address failed due to ([`net`][], [`http`][], or [`https`][]) to a local address failed due to
another server on the local system already occupying that address. another server on the local system already occupying that address.
- `ECONNREFUSED` (Connection refused): No connection could be made because the * `ECONNREFUSED` (Connection refused): No connection could be made because the
target machine actively refused it. This usually results from trying to target machine actively refused it. This usually results from trying to
connect to a service that is inactive on the foreign host. connect to a service that is inactive on the foreign host.
- `ECONNRESET` (Connection reset by peer): A connection was forcibly closed by * `ECONNRESET` (Connection reset by peer): A connection was forcibly closed by
a peer. This normally results from a loss of the connection on the remote a peer. This normally results from a loss of the connection on the remote
socket due to a timeout or reboot. Commonly encountered via the [`http`][] socket due to a timeout or reboot. Commonly encountered via the [`http`][]
and [`net`][] modules. and [`net`][] modules.
- `EEXIST` (File exists): An existing file was the target of an operation that * `EEXIST` (File exists): An existing file was the target of an operation that
required that the target not exist. required that the target not exist.
- `EISDIR` (Is a directory): An operation expected a file, but the given * `EISDIR` (Is a directory): An operation expected a file, but the given
pathname was a directory. pathname was a directory.
- `EMFILE` (Too many open files in system): Maximum number of * `EMFILE` (Too many open files in system): Maximum number of
[file descriptors][] allowable on the system has been reached, and [file descriptors][] allowable on the system has been reached, and
requests for another descriptor cannot be fulfilled until at least one requests for another descriptor cannot be fulfilled until at least one
has been closed. This is encountered when opening many files at once in has been closed. This is encountered when opening many files at once in
@ -532,28 +532,28 @@ program. For a comprehensive list, see the [`errno`(3) man page][].
file descriptor limit for processes. To remedy a low limit, run file descriptor limit for processes. To remedy a low limit, run
`ulimit -n 2048` in the same shell that will run the Node.js process. `ulimit -n 2048` in the same shell that will run the Node.js process.
- `ENOENT` (No such file or directory): Commonly raised by [`fs`][] operations * `ENOENT` (No such file or directory): Commonly raised by [`fs`][] operations
to indicate that a component of the specified pathname does not exist — no to indicate that a component of the specified pathname does not exist — no
entity (file or directory) could be found by the given path. entity (file or directory) could be found by the given path.
- `ENOTDIR` (Not a directory): A component of the given pathname existed, but * `ENOTDIR` (Not a directory): A component of the given pathname existed, but
was not a directory as expected. Commonly raised by [`fs.readdir`][]. was not a directory as expected. Commonly raised by [`fs.readdir`][].
- `ENOTEMPTY` (Directory not empty): A directory with entries was the target * `ENOTEMPTY` (Directory not empty): A directory with entries was the target
of an operation that requires an empty directory — usually [`fs.unlink`][]. of an operation that requires an empty directory — usually [`fs.unlink`][].
- `ENOTFOUND` (DNS lookup failed): Indicates a DNS failure of either * `ENOTFOUND` (DNS lookup failed): Indicates a DNS failure of either
`EAI_NODATA` or `EAI_NONAME`. This is not a standard POSIX error. `EAI_NODATA` or `EAI_NONAME`. This is not a standard POSIX error.
- `EPERM` (Operation not permitted): An attempt was made to perform an * `EPERM` (Operation not permitted): An attempt was made to perform an
operation that requires elevated privileges. operation that requires elevated privileges.
- `EPIPE` (Broken pipe): A write on a pipe, socket, or FIFO for which there is * `EPIPE` (Broken pipe): A write on a pipe, socket, or FIFO for which there is
no process to read the data. Commonly encountered at the [`net`][] and no process to read the data. Commonly encountered at the [`net`][] and
[`http`][] layers, indicative that the remote side of the stream being [`http`][] layers, indicative that the remote side of the stream being
written to has been closed. written to has been closed.
- `ETIMEDOUT` (Operation timed out): A connect or send request failed because * `ETIMEDOUT` (Operation timed out): A connect or send request failed because
the connected party did not properly respond after a period of time. Usually the connected party did not properly respond after a period of time. Usually
encountered by [`http`][] or [`net`][] — often a sign that a `socket.end()` encountered by [`http`][] or [`net`][] — often a sign that a `socket.end()`
was not properly called. was not properly called.
@ -1964,9 +1964,9 @@ A dynamic import callback was not specified.
The module attempted to be linked is not eligible for linking, because of one of The module attempted to be linked is not eligible for linking, because of one of
the following reasons: the following reasons:
- It has already been linked (`linkingStatus` is `'linked'`) * It has already been linked (`linkingStatus` is `'linked'`)
- It is being linked (`linkingStatus` is `'linking'`) * It is being linked (`linkingStatus` is `'linking'`)
- Linking has failed for this module (`linkingStatus` is `'errored'`) * Linking has failed for this module (`linkingStatus` is `'errored'`)
<a id="ERR_VM_MODULE_DIFFERENT_CONTEXT"></a> <a id="ERR_VM_MODULE_DIFFERENT_CONTEXT"></a>
### ERR_VM_MODULE_DIFFERENT_CONTEXT ### ERR_VM_MODULE_DIFFERENT_CONTEXT

View File

@ -34,13 +34,13 @@ Once enabled, Node.js will treat the following as ES modules when passed to
`node` as the initial input, or when referenced by `import` statements within `node` as the initial input, or when referenced by `import` statements within
ES module code: ES module code:
- Files ending in `.mjs`. * Files ending in `.mjs`.
- Files ending in `.js`, or extensionless files, when the nearest parent * Files ending in `.js`, or extensionless files, when the nearest parent
`package.json` file contains a top-level field `"type"` with a value of `package.json` file contains a top-level field `"type"` with a value of
`"module"`. `"module"`.
- Strings passed in as an argument to `--eval` or `--print`, or piped to * Strings passed in as an argument to `--eval` or `--print`, or piped to
`node` via `STDIN`, with the flag `--input-type=module`. `node` via `STDIN`, with the flag `--input-type=module`.
Node.js will treat as CommonJS all other forms of input, such as `.js` files Node.js will treat as CommonJS all other forms of input, such as `.js` files
@ -51,13 +51,13 @@ CommonJS and ES modules, it is best to be explicit whenever possible. Node.js
will treat the following as CommonJS when passed to `node` as the initial input, will treat the following as CommonJS when passed to `node` as the initial input,
or when referenced by `import` statements within ES module code: or when referenced by `import` statements within ES module code:
- Files ending in `.cjs`. * Files ending in `.cjs`.
- Files ending in `.js`, or extensionless files, when the nearest parent * Files ending in `.js`, or extensionless files, when the nearest parent
`package.json` file contains a top-level field `"type"` with a value of `package.json` file contains a top-level field `"type"` with a value of
`"commonjs"`. `"commonjs"`.
- Strings passed in as an argument to `--eval` or `--print`, or piped to * Strings passed in as an argument to `--eval` or `--print`, or piped to
`node` via `STDIN`, with the flag `--input-type=commonjs`. `node` via `STDIN`, with the flag `--input-type=commonjs`.
## <code>package.json</code> <code>"type"</code> field ## <code>package.json</code> <code>"type"</code> field
@ -146,12 +146,12 @@ import 'commonjs-package/src/index.mjs';
The `.mjs` and `.cjs` extensions may be used to mix types within the same The `.mjs` and `.cjs` extensions may be used to mix types within the same
package scope: package scope:
- Within a `"type": "module"` package scope, Node.js can be instructed to * Within a `"type": "module"` package scope, Node.js can be instructed to
interpret a particular file as CommonJS by naming it with a `.cjs` extension interpret a particular file as CommonJS by naming it with a `.cjs` extension
(since both `.js` and `.mjs` files are treated as ES modules within a (since both `.js` and `.mjs` files are treated as ES modules within a
`"module"` package scope). `"module"` package scope).
- Within a `"type": "commonjs"` package scope, Node.js can be instructed to * Within a `"type": "commonjs"` package scope, Node.js can be instructed to
interpret a particular file as an ES module by naming it with an `.mjs` interpret a particular file as an ES module by naming it with an `.mjs`
extension (since both `.js` and `.cjs` files are treated as CommonJS within a extension (since both `.js` and `.cjs` files are treated as CommonJS within a
`"commonjs"` package scope). `"commonjs"` package scope).
@ -298,16 +298,16 @@ e.g. `'path'` in `import { sep } from 'path'`. Specifiers are also used in
There are four types of specifiers: There are four types of specifiers:
- _Bare specifiers_ like `'some-package'`. They refer to an entry point of a * _Bare specifiers_ like `'some-package'`. They refer to an entry point of a
package by the package name. package by the package name.
- _Deep import specifiers_ like `'some-package/lib/shuffle.mjs'`. They refer to * _Deep import specifiers_ like `'some-package/lib/shuffle.mjs'`. They refer to
a path within a package prefixed by the package name. a path within a package prefixed by the package name.
- _Relative specifiers_ like `'./startup.js'` or `'../config.mjs'`. They refer * _Relative specifiers_ like `'./startup.js'` or `'../config.mjs'`. They refer
to a path relative to the location of the importing file. to a path relative to the location of the importing file.
- _Absolute specifiers_ like `'file:///opt/nodejs/config.js'`. They refer * _Absolute specifiers_ like `'file:///opt/nodejs/config.js'`. They refer
directly and explicitly to a full path. directly and explicitly to a full path.
Bare specifiers, and the bare specifier portion of deep import specifiers, are Bare specifiers, and the bare specifier portion of deep import specifiers, are

View File

@ -3438,9 +3438,9 @@ Change the file system timestamps of the object referenced by `path`.
The `atime` and `mtime` arguments follow these rules: The `atime` and `mtime` arguments follow these rules:
- Values can be either numbers representing Unix epoch time, `Date`s, or a * Values can be either numbers representing Unix epoch time, `Date`s, or a
numeric string like `'123456789.0'`. numeric string like `'123456789.0'`.
- If the value can not be converted to a number, or is `NaN`, `Infinity` or * If the value can not be converted to a number, or is `NaN`, `Infinity` or
`-Infinity`, an `Error` will be thrown. `-Infinity`, an `Error` will be thrown.
## fs.utimesSync(path, atime, mtime) ## fs.utimesSync(path, atime, mtime)
@ -3640,8 +3640,8 @@ event (its disappearance).
This happens when: This happens when:
- the file is deleted, followed by a restore * the file is deleted, followed by a restore
- the file is renamed twice - the second time back to its original name * the file is renamed twice - the second time back to its original name
## fs.write(fd, buffer[, offset[, length[, position]]], callback) ## fs.write(fd, buffer[, offset[, length[, position]]], callback)
<!-- YAML <!-- YAML
@ -4848,9 +4848,9 @@ resolves the `Promise` with no arguments upon success.
The `atime` and `mtime` arguments follow these rules: The `atime` and `mtime` arguments follow these rules:
- Values can be either numbers representing Unix epoch time, `Date`s, or a * Values can be either numbers representing Unix epoch time, `Date`s, or a
numeric string like `'123456789.0'`. numeric string like `'123456789.0'`.
- If the value can not be converted to a number, or is `NaN`, `Infinity` or * If the value can not be converted to a number, or is `NaN`, `Infinity` or
`-Infinity`, an `Error` will be thrown. `-Infinity`, an `Error` will be thrown.
### fsPromises.writeFile(file, data[, options]) ### fsPromises.writeFile(file, data[, options])

View File

@ -7,11 +7,11 @@ These objects are available in all modules. The following variables may appear
to be global but are not. They exist only in the scope of modules, see the to be global but are not. They exist only in the scope of modules, see the
[module system documentation][]: [module system documentation][]:
- [`__dirname`][] * [`__dirname`][]
- [`__filename`][] * [`__filename`][]
- [`exports`][] * [`exports`][]
- [`module`][] * [`module`][]
- [`require()`][] * [`require()`][]
The objects listed here are specific to Node.js. There are a number of The objects listed here are specific to Node.js. There are a number of
[built-in objects][] that are part of the JavaScript language itself, which are [built-in objects][] that are part of the JavaScript language itself, which are

View File

@ -912,9 +912,9 @@ ensure the response is a properly formatted HTTP response message.
`err` is an instance of `Error` with two extra columns: `err` is an instance of `Error` with two extra columns:
+ `bytesParsed`: the bytes count of request packet that Node.js may have parsed * `bytesParsed`: the bytes count of request packet that Node.js may have parsed
correctly; correctly;
+ `rawPacket`: the raw packet of current request. * `rawPacket`: the raw packet of current request.
### Event: 'close' ### Event: 'close'
<!-- YAML <!-- YAML

View File

@ -69,7 +69,7 @@ See [`server.close()`][`http.close()`] from the HTTP module for details.
added: v11.3.0 added: v11.3.0
--> -->
- {number} **Default:** `40000` * {number} **Default:** `40000`
See [`http.Server#headersTimeout`][]. See [`http.Server#headersTimeout`][].
@ -80,7 +80,7 @@ This method is identical to [`server.listen()`][] from [`net.Server`][].
### server.maxHeadersCount ### server.maxHeadersCount
- {number} **Default:** `2000` * {number} **Default:** `2000`
See [`http.Server#maxHeadersCount`][]. See [`http.Server#maxHeadersCount`][].
@ -100,7 +100,7 @@ See [`http.Server#setTimeout()`][].
added: v0.11.2 added: v0.11.2
--> -->
- {number} **Default:** `120000` (2 minutes) * {number} **Default:** `120000` (2 minutes)
See [`http.Server#timeout`][]. See [`http.Server#timeout`][].
@ -109,7 +109,7 @@ See [`http.Server#timeout`][].
added: v8.0.0 added: v8.0.0
--> -->
- {number} **Default:** `5000` (5 seconds) * {number} **Default:** `5000` (5 seconds)
See [`http.Server#keepAliveTimeout`][]. See [`http.Server#keepAliveTimeout`][].
@ -224,9 +224,9 @@ changes:
* `url` {string | URL} * `url` {string | URL}
* `options` {Object | string | URL} Accepts all `options` from * `options` {Object | string | URL} Accepts all `options` from
[`http.request()`][], with some differences in default values: [`http.request()`][], with some differences in default values:
- `protocol` **Default:** `'https:'` * `protocol` **Default:** `'https:'`
- `port` **Default:** `443` * `port` **Default:** `443`
- `agent` **Default:** `https.globalAgent` * `agent` **Default:** `https.globalAgent`
* `callback` {Function} * `callback` {Function}
Makes a request to a secure web server. Makes a request to a secure web server.

View File

@ -6,21 +6,21 @@
Node.js has many features that make it easier to write internationalized Node.js has many features that make it easier to write internationalized
programs. Some of them are: programs. Some of them are:
- Locale-sensitive or Unicode-aware functions in the [ECMAScript Language * Locale-sensitive or Unicode-aware functions in the [ECMAScript Language
Specification][ECMA-262]: Specification][ECMA-262]:
- [`String.prototype.normalize()`][] * [`String.prototype.normalize()`][]
- [`String.prototype.toLowerCase()`][] * [`String.prototype.toLowerCase()`][]
- [`String.prototype.toUpperCase()`][] * [`String.prototype.toUpperCase()`][]
- All functionality described in the [ECMAScript Internationalization API * All functionality described in the [ECMAScript Internationalization API
Specification][ECMA-402] (aka ECMA-402): Specification][ECMA-402] (aka ECMA-402):
- [`Intl`][] object * [`Intl`][] object
- Locale-sensitive methods like [`String.prototype.localeCompare()`][] and * Locale-sensitive methods like [`String.prototype.localeCompare()`][] and
[`Date.prototype.toLocaleString()`][] [`Date.prototype.toLocaleString()`][]
- The [WHATWG URL parser][]'s [internationalized domain names][] (IDNs) support * The [WHATWG URL parser][]'s [internationalized domain names][] (IDNs) support
- [`require('buffer').transcode()`][] * [`require('buffer').transcode()`][]
- More accurate [REPL][] line editing * More accurate [REPL][] line editing
- [`require('util').TextDecoder`][] * [`require('util').TextDecoder`][]
- [`RegExp` Unicode Property Escapes][] * [`RegExp` Unicode Property Escapes][]
Node.js (and its underlying V8 engine) uses [ICU][] to implement these features Node.js (and its underlying V8 engine) uses [ICU][] to implement these features
in native C/C++ code. However, some of them require a very large ICU data file in native C/C++ code. However, some of them require a very large ICU data file
@ -36,10 +36,10 @@ To control how ICU is used in Node.js, four `configure` options are available
during compilation. Additional details on how to compile Node.js are documented during compilation. Additional details on how to compile Node.js are documented
in [BUILDING.md][]. in [BUILDING.md][].
- `--with-intl=none`/`--without-intl` * `--with-intl=none`/`--without-intl`
- `--with-intl=system-icu` * `--with-intl=system-icu`
- `--with-intl=small-icu` (default) * `--with-intl=small-icu` (default)
- `--with-intl=full-icu` * `--with-intl=full-icu`
An overview of available Node.js and JavaScript features for each `configure` An overview of available Node.js and JavaScript features for each `configure`
option: option:
@ -186,9 +186,9 @@ const hasFullICU = (() => {
For more verbose tests for `Intl` support, the following resources may be found For more verbose tests for `Intl` support, the following resources may be found
to be helpful: to be helpful:
- [btest402][]: Generally used to check whether Node.js with `Intl` support is * [btest402][]: Generally used to check whether Node.js with `Intl` support is
built correctly. built correctly.
- [Test262][]: ECMAScript's official conformance test suite includes a section * [Test262][]: ECMAScript's official conformance test suite includes a section
dedicated to ECMA-402. dedicated to ECMA-402.
["ICU Data"]: http://userguide.icu-project.org/icudata ["ICU Data"]: http://userguide.icu-project.org/icudata

View File

@ -492,13 +492,13 @@ wrapper that looks like the following:
By doing this, Node.js achieves a few things: By doing this, Node.js achieves a few things:
- It keeps top-level variables (defined with `var`, `const` or `let`) scoped to * It keeps top-level variables (defined with `var`, `const` or `let`) scoped to
the module rather than the global object. the module rather than the global object.
- It helps to provide some global-looking variables that are actually specific * It helps to provide some global-looking variables that are actually specific
to the module, such as: to the module, such as:
- The `module` and `exports` objects that the implementor can use to export * The `module` and `exports` objects that the implementor can use to export
values from the module. values from the module.
- The convenience variables `__filename` and `__dirname`, containing the * The convenience variables `__filename` and `__dirname`, containing the
module's absolute filename and directory path. module's absolute filename and directory path.
## The module scope ## The module scope

File diff suppressed because it is too large Load Diff

View File

@ -511,16 +511,16 @@ environment variable.
representations. `process.allowedNodeEnvironmentFlags.has()` will representations. `process.allowedNodeEnvironmentFlags.has()` will
return `true` in the following cases: return `true` in the following cases:
- Flags may omit leading single (`-`) or double (`--`) dashes; e.g., * Flags may omit leading single (`-`) or double (`--`) dashes; e.g.,
`inspect-brk` for `--inspect-brk`, or `r` for `-r`. `inspect-brk` for `--inspect-brk`, or `r` for `-r`.
- Flags passed through to V8 (as listed in `--v8-options`) may replace * Flags passed through to V8 (as listed in `--v8-options`) may replace
one or more *non-leading* dashes for an underscore, or vice-versa; one or more *non-leading* dashes for an underscore, or vice-versa;
e.g., `--perf_basic_prof`, `--perf-basic-prof`, `--perf_basic-prof`, e.g., `--perf_basic_prof`, `--perf-basic-prof`, `--perf_basic-prof`,
etc. etc.
- Flags may contain one or more equals (`=`) characters; all * Flags may contain one or more equals (`=`) characters; all
characters after and including the first equals will be ignored; characters after and including the first equals will be ignored;
e.g., `--stack-trace-limit=100`. e.g., `--stack-trace-limit=100`.
- Flags *must* be allowable within [`NODE_OPTIONS`][]. * Flags *must* be allowable within [`NODE_OPTIONS`][].
When iterating over `process.allowedNodeEnvironmentFlags`, flags will When iterating over `process.allowedNodeEnvironmentFlags`, flags will
appear only *once*; each will begin with one or more dashes. Flags appear only *once*; each will begin with one or more dashes. Flags
@ -1680,9 +1680,9 @@ tarball.
* `lts` {string} a string label identifying the [LTS][] label for this release. * `lts` {string} a string label identifying the [LTS][] label for this release.
This property only exists for LTS releases and is `undefined` for all other This property only exists for LTS releases and is `undefined` for all other
release types, including _Current_ releases. Currently the valid values are: release types, including _Current_ releases. Currently the valid values are:
- `'Argon'` for the 4.x LTS line beginning with 4.2.0. * `'Argon'` for the 4.x LTS line beginning with 4.2.0.
- `'Boron'` for the 6.x LTS line beginning with 6.9.0. * `'Boron'` for the 6.x LTS line beginning with 6.9.0.
- `'Carbon'` for the 8.x LTS line beginning with 8.9.1. * `'Carbon'` for the 8.x LTS line beginning with 8.9.1.
<!-- eslint-skip --> <!-- eslint-skip -->
```js ```js
@ -2178,9 +2178,9 @@ important ways:
respectively. respectively.
2. Writes may be synchronous depending on what the stream is connected to 2. Writes may be synchronous depending on what the stream is connected to
and whether the system is Windows or POSIX: and whether the system is Windows or POSIX:
- Files: *synchronous* on Windows and POSIX * Files: *synchronous* on Windows and POSIX
- TTYs (Terminals): *asynchronous* on Windows, *synchronous* on POSIX * TTYs (Terminals): *asynchronous* on Windows, *synchronous* on POSIX
- Pipes (and sockets): *synchronous* on Windows, *asynchronous* on POSIX * Pipes (and sockets): *synchronous* on Windows, *asynchronous* on POSIX
These behaviors are partly for historical reasons, as changing them would These behaviors are partly for historical reasons, as changing them would
create backwards incompatibility, but they are also expected by some users. create backwards incompatibility, but they are also expected by some users.

View File

@ -601,16 +601,16 @@ undefined
Various behaviors of the Node.js REPL can be customized using the following Various behaviors of the Node.js REPL can be customized using the following
environment variables: environment variables:
- `NODE_REPL_HISTORY` - When a valid path is given, persistent REPL history * `NODE_REPL_HISTORY` - When a valid path is given, persistent REPL history
will be saved to the specified file rather than `.node_repl_history` in the will be saved to the specified file rather than `.node_repl_history` in the
user's home directory. Setting this value to `''` (an empty string) will user's home directory. Setting this value to `''` (an empty string) will
disable persistent REPL history. Whitespace will be trimmed from the value. disable persistent REPL history. Whitespace will be trimmed from the value.
On Windows platforms environment variables with empty values are invalid so On Windows platforms environment variables with empty values are invalid so
set this variable to one or more spaces to disable persistent REPL history. set this variable to one or more spaces to disable persistent REPL history.
- `NODE_REPL_HISTORY_SIZE` - Controls how many lines of history will be * `NODE_REPL_HISTORY_SIZE` - Controls how many lines of history will be
persisted if history is available. Must be a positive number. persisted if history is available. Must be a positive number.
**Default:** `1000`. **Default:** `1000`.
- `NODE_REPL_MODE` - May be either `'sloppy'` or `'strict'`. **Default:** * `NODE_REPL_MODE` - May be either `'sloppy'` or `'strict'`. **Default:**
`'sloppy'`, which will allow non-strict mode code to be run. `'sloppy'`, which will allow non-strict mode code to be run.
### Persistent History ### Persistent History

View File

@ -317,11 +317,11 @@ on the format, see the OpenSSL [cipher list format][] documentation.
There are only 5 TLSv1.3 cipher suites: There are only 5 TLSv1.3 cipher suites:
- `'TLS_AES_256_GCM_SHA384'` * `'TLS_AES_256_GCM_SHA384'`
- `'TLS_CHACHA20_POLY1305_SHA256'` * `'TLS_CHACHA20_POLY1305_SHA256'`
- `'TLS_AES_128_GCM_SHA256'` * `'TLS_AES_128_GCM_SHA256'`
- `'TLS_AES_128_CCM_SHA256'` * `'TLS_AES_128_CCM_SHA256'`
- `'TLS_AES_128_CCM_8_SHA256'` * `'TLS_AES_128_CCM_8_SHA256'`
The first 3 are enabled by default. The last 2 `CCM`-based suites are supported The first 3 are enabled by default. The last 2 `CCM`-based suites are supported
by TLSv1.3 because they may be more performant on constrained systems, but they by TLSv1.3 because they may be more performant on constrained systems, but they

View File

@ -520,9 +520,9 @@ This must be called after the module has been instantiated; otherwise it will
throw an error. It could be called also when the module has already been throw an error. It could be called also when the module has already been
evaluated, in which case it will do one of the following two things: evaluated, in which case it will do one of the following two things:
- return `undefined` if the initial evaluation ended in success (`module.status` * return `undefined` if the initial evaluation ended in success (`module.status`
is `'evaluated'`) is `'evaluated'`)
- rethrow the same exception the initial evaluation threw if the initial * rethrow the same exception the initial evaluation threw if the initial
evaluation ended in an error (`module.status` is `'errored'`) evaluation ended in an error (`module.status` is `'errored'`)
This method cannot be called while the module is being evaluated This method cannot be called while the module is being evaluated
@ -570,8 +570,8 @@ The function is expected to return a `Module` object or a `Promise` that
eventually resolves to a `Module` object. The returned `Module` must satisfy the eventually resolves to a `Module` object. The returned `Module` must satisfy the
following two invariants: following two invariants:
- It must belong to the same context as the parent `Module`. * It must belong to the same context as the parent `Module`.
- Its `linkingStatus` must not be `'errored'`. * Its `linkingStatus` must not be `'errored'`.
If the returned `Module`'s `linkingStatus` is `'unlinked'`, this method will be If the returned `Module`'s `linkingStatus` is `'unlinked'`, this method will be
recursively called on the returned `Module` with the same provided `linker` recursively called on the returned `Module` with the same provided `linker`
@ -585,9 +585,9 @@ The linker function roughly corresponds to the implementation-defined
[HostResolveImportedModule][] abstract operation in the ECMAScript [HostResolveImportedModule][] abstract operation in the ECMAScript
specification, with a few key differences: specification, with a few key differences:
- The linker function is allowed to be asynchronous while * The linker function is allowed to be asynchronous while
[HostResolveImportedModule][] is synchronous. [HostResolveImportedModule][] is synchronous.
- The linker function is executed during linking, a Node.js-specific stage * The linker function is executed during linking, a Node.js-specific stage
before instantiation, while [HostResolveImportedModule][] is called during before instantiation, while [HostResolveImportedModule][] is called during
instantiation. instantiation.
@ -603,12 +603,12 @@ specification.
The current linking status of `module`. It will be one of the following values: The current linking status of `module`. It will be one of the following values:
- `'unlinked'`: `module.link()` has not yet been called. * `'unlinked'`: `module.link()` has not yet been called.
- `'linking'`: `module.link()` has been called, but not all Promises returned by * `'linking'`: `module.link()` has been called, but not all Promises returned by
the linker function have been resolved yet. the linker function have been resolved yet.
- `'linked'`: `module.link()` has been called, and all its dependencies have * `'linked'`: `module.link()` has been called, and all its dependencies have
been successfully linked. been successfully linked.
- `'errored'`: `module.link()` has been called, but at least one of its * `'errored'`: `module.link()` has been called, but at least one of its
dependencies failed to link, either because the callback returned a `Promise` dependencies failed to link, either because the callback returned a `Promise`
that is rejected, or because the `Module` the callback returned is invalid. that is rejected, or because the `Module` the callback returned is invalid.
@ -628,28 +628,28 @@ specification.
The current status of the module. Will be one of: The current status of the module. Will be one of:
- `'uninstantiated'`: The module is not instantiated. It may because of any of * `'uninstantiated'`: The module is not instantiated. It may because of any of
the following reasons: the following reasons:
- The module was just created. * The module was just created.
- `module.instantiate()` has been called on this module, but it failed for * `module.instantiate()` has been called on this module, but it failed for
some reason. some reason.
This status does not convey any information regarding if `module.link()` has This status does not convey any information regarding if `module.link()` has
been called. See `module.linkingStatus` for that. been called. See `module.linkingStatus` for that.
- `'instantiating'`: The module is currently being instantiated through a * `'instantiating'`: The module is currently being instantiated through a
`module.instantiate()` call on itself or a parent module. `module.instantiate()` call on itself or a parent module.
- `'instantiated'`: The module has been instantiated successfully, but * `'instantiated'`: The module has been instantiated successfully, but
`module.evaluate()` has not yet been called. `module.evaluate()` has not yet been called.
- `'evaluating'`: The module is being evaluated through a `module.evaluate()` on * `'evaluating'`: The module is being evaluated through a `module.evaluate()` on
itself or a parent module. itself or a parent module.
- `'evaluated'`: The module has been successfully evaluated. * `'evaluated'`: The module has been successfully evaluated.
- `'errored'`: The module has been evaluated, but an exception was thrown. * `'errored'`: The module has been evaluated, but an exception was thrown.
Other than `'errored'`, this status string corresponds to the specification's Other than `'errored'`, this status string corresponds to the specification's
[Source Text Module Record][]'s `[[Status]]` field. `'errored'` corresponds to [Source Text Module Record][]'s `[[Status]]` field. `'errored'` corresponds to

View File

@ -304,13 +304,13 @@ the [HTML structured clone algorithm][].
In particular, the significant differences to `JSON` are: In particular, the significant differences to `JSON` are:
- `value` may contain circular references. * `value` may contain circular references.
- `value` may contain instances of builtin JS types such as `RegExp`s, * `value` may contain instances of builtin JS types such as `RegExp`s,
`BigInt`s, `Map`s, `Set`s, etc. `BigInt`s, `Map`s, `Set`s, etc.
- `value` may contain typed arrays, both using `ArrayBuffer`s * `value` may contain typed arrays, both using `ArrayBuffer`s
and `SharedArrayBuffer`s. and `SharedArrayBuffer`s.
- `value` may contain [`WebAssembly.Module`][] instances. * `value` may contain [`WebAssembly.Module`][] instances.
- `value` may not contain native (C++-backed) objects other than `MessagePort`s. * `value` may not contain native (C++-backed) objects other than `MessagePort`s.
```js ```js
const { MessageChannel } = require('worker_threads'); const { MessageChannel } = require('worker_threads');
@ -424,26 +424,26 @@ Most Node.js APIs are available inside of it.
Notable differences inside a Worker environment are: Notable differences inside a Worker environment are:
- The [`process.stdin`][], [`process.stdout`][] and [`process.stderr`][] * The [`process.stdin`][], [`process.stdout`][] and [`process.stderr`][]
may be redirected by the parent thread. may be redirected by the parent thread.
- The [`require('worker_threads').isMainThread`][] property is set to `false`. * The [`require('worker_threads').isMainThread`][] property is set to `false`.
- The [`require('worker_threads').parentPort`][] message port is available. * The [`require('worker_threads').parentPort`][] message port is available.
- [`process.exit()`][] does not stop the whole program, just the single thread, * [`process.exit()`][] does not stop the whole program, just the single thread,
and [`process.abort()`][] is not available. and [`process.abort()`][] is not available.
- [`process.chdir()`][] and `process` methods that set group or user ids * [`process.chdir()`][] and `process` methods that set group or user ids
are not available. are not available.
- [`process.env`][] is a copy of the parent thread's environment variables, * [`process.env`][] is a copy of the parent thread's environment variables,
unless otherwise specified. Changes to one copy will not be visible in other unless otherwise specified. Changes to one copy will not be visible in other
threads, and will not be visible to native add-ons (unless threads, and will not be visible to native add-ons (unless
[`worker.SHARE_ENV`][] has been passed as the `env` option to the [`worker.SHARE_ENV`][] has been passed as the `env` option to the
[`Worker`][] constructor). [`Worker`][] constructor).
- [`process.title`][] cannot be modified. * [`process.title`][] cannot be modified.
- Signals will not be delivered through [`process.on('...')`][Signals events]. * Signals will not be delivered through [`process.on('...')`][Signals events].
- Execution may stop at any point as a result of [`worker.terminate()`][] * Execution may stop at any point as a result of [`worker.terminate()`][]
being invoked. being invoked.
- IPC channels from parent processes are not accessible. * IPC channels from parent processes are not accessible.
- The [`trace_events`][] module is not supported. * The [`trace_events`][] module is not supported.
- Native add-ons can only be loaded from multiple threads if they fulfill * Native add-ons can only be loaded from multiple threads if they fulfill
[certain conditions][Addons worker support]. [certain conditions][Addons worker support].
Creating `Worker` instances inside of other `Worker`s is possible. Creating `Worker` instances inside of other `Worker`s is possible.

View File

@ -217,8 +217,8 @@ speed, at the cost of memory usage.
There are equivalents to the zlib options for Brotli-based streams, although There are equivalents to the zlib options for Brotli-based streams, although
these options have different ranges than the zlib ones: these options have different ranges than the zlib ones:
- zlibs `level` option matches Brotlis `BROTLI_PARAM_QUALITY` option. * zlibs `level` option matches Brotlis `BROTLI_PARAM_QUALITY` option.
- zlibs `windowBits` option matches Brotlis `BROTLI_PARAM_LGWIN` option. * zlibs `windowBits` option matches Brotlis `BROTLI_PARAM_LGWIN` option.
See [below][Brotli parameters] for more details on Brotli-specific options. See [below][Brotli parameters] for more details on Brotli-specific options.

View File

@ -1013,9 +1013,9 @@ https://github.com/nodejs/node/commit/2c4eef0d972838c51999d32c0d251857a713dc18
https://github.com/nodejs/node/commit/c50c33e9397d7a0a8717e8ce7530572907c054ad https://github.com/nodejs/node/commit/c50c33e9397d7a0a8717e8ce7530572907c054ad
* npm: Upgrade to v1.2.0 * npm: Upgrade to v1.2.0
- peerDependencies (Domenic Denicola) * peerDependencies (Domenic Denicola)
- node-gyp v0.8.2 (Nathan Rajlich) * node-gyp v0.8.2 (Nathan Rajlich)
- Faster installs from github user/project shorthands (Nathan Zadoks) * Faster installs from github user/project shorthands (Nathan Zadoks)
* typed arrays: fix 32 bit size/index overflow (Ben Noordhuis) * typed arrays: fix 32 bit size/index overflow (Ben Noordhuis)
* http: Improve performance of single-packet responses (Ben Noordhuis) * http: Improve performance of single-packet responses (Ben Noordhuis)
@ -1279,10 +1279,10 @@ https://github.com/nodejs/node/commit/2134aa3d5c622fc3c3b02ccb713fcde0e0df479a
* V8: upgrade to v3.11.10.12 * V8: upgrade to v3.11.10.12
* npm: upgrade to v1.1.33 * npm: upgrade to v1.1.33
- Support for parallel use of the cache folder * Support for parallel use of the cache folder
- Retry on registry timeouts or network failures (Trent Mick) * Retry on registry timeouts or network failures (Trent Mick)
- Reduce 'engines' failures to a warning * Reduce 'engines' failures to a warning
- Use new zsh completion if available (Jeremy Cantrell) * Use new zsh completion if available (Jeremy Cantrell)
* Fix [#3577](https://github.com/joyent/node/issues/3577) Un-break require('sys') * Fix [#3577](https://github.com/joyent/node/issues/3577) Un-break require('sys')
* util: speed up formatting of large arrays/objects (Ben Noordhuis) * util: speed up formatting of large arrays/objects (Ben Noordhuis)
@ -1323,13 +1323,13 @@ https://github.com/nodejs/node/commit/8b8a7a7f9b41e74e1e810d0330738ad06fc302ec
https://github.com/nodejs/node/commit/a72120190a8ffdbcd3d6ad2a2e6ceecd2087111e https://github.com/nodejs/node/commit/a72120190a8ffdbcd3d6ad2a2e6ceecd2087111e
* npm: Upgrade to 1.1.30 * npm: Upgrade to 1.1.30
- Improved 'npm init' * Improved 'npm init'
- Fix the 'cb never called' error from 'oudated' and 'update' * Fix the 'cb never called' error from 'oudated' and 'update'
- Add --save-bundle|-B config * Add --save-bundle|-B config
- Fix isaacs/npm[#2465](https://github.com/joyent/node/issues/2465): Make npm script and windows shims cygwin-aware * Fix isaacs/npm[#2465](https://github.com/joyent/node/issues/2465): Make npm script and windows shims cygwin-aware
- Fix isaacs/npm[#2452](https://github.com/joyent/node/issues/2452) Use --save(-dev|-optional) in npm rm * Fix isaacs/npm[#2452](https://github.com/joyent/node/issues/2452) Use --save(-dev|-optional) in npm rm
- `logstream` option to replace removed `logfd` (Rod Vagg) * `logstream` option to replace removed `logfd` (Rod Vagg)
- Read default descriptions from README.md files * Read default descriptions from README.md files
* Shims to support deprecated ev_* and eio_* methods (Ben Noordhuis) * Shims to support deprecated ev_* and eio_* methods (Ben Noordhuis)
* [#3118](https://github.com/joyent/node/issues/3118) net.Socket: Delay pause/resume until after connect (isaacs) * [#3118](https://github.com/joyent/node/issues/3118) net.Socket: Delay pause/resume until after connect (isaacs)
@ -1390,9 +1390,9 @@ https://github.com/nodejs/node/commit/8d9766a9dfb1eea901219d2a865ce9300fe4d68e
* child_process: new stdio API for .spawn() method (Fedor Indutny) * child_process: new stdio API for .spawn() method (Fedor Indutny)
* child_process: spawn().ref() and spawn().unref() (Fedor Indutny) * child_process: spawn().ref() and spawn().unref() (Fedor Indutny)
* Upgrade npm to 1.1.25 * Upgrade npm to 1.1.25
- Enable npm link on windows * Enable npm link on windows
- Properly remove sh-shim on Windows * Properly remove sh-shim on Windows
- Abstract out registry client and logger * Abstract out registry client and logger
<a id="0.7.9"></a> <a id="0.7.9"></a>
## 2012.05.28, Version 0.7.9 (unstable) ## 2012.05.28, Version 0.7.9 (unstable)
@ -1477,11 +1477,11 @@ https://github.com/nodejs/node/commit/f06abda6f58e517349d1b63a2cbf5a8d04a03505
* Upgrade v8 to 3.9.17 * Upgrade v8 to 3.9.17
* Upgrade npm to 1.1.8 * Upgrade npm to 1.1.8
- Add support for os/cpu fields in package.json (Adam Blackburn) * Add support for os/cpu fields in package.json (Adam Blackburn)
- Automatically node-gyp packages containing a binding.gyp * Automatically node-gyp packages containing a binding.gyp
- Fix failures unpacking in UNC shares * Fix failures unpacking in UNC shares
- Never create un-listable directories * Never create un-listable directories
- Handle cases where an optionalDependency fails to build * Handle cases where an optionalDependency fails to build
* events: newListener emit correct fn when using 'once' (Roly Fentanes) * events: newListener emit correct fn when using 'once' (Roly Fentanes)
* url: Ignore empty port component (Łukasz Walukiewicz) * url: Ignore empty port component (Łukasz Walukiewicz)
@ -1696,12 +1696,12 @@ https://github.com/nodejs/node/commit/e513ffef7549a56a5af728e1f0c2c0c8f290518a
* Add UV_ENOSPC and mappings to it (Bert Belder) * Add UV_ENOSPC and mappings to it (Bert Belder)
* http-parser: Fix response body is not read (koichik) * http-parser: Fix response body is not read (koichik)
* Upgrade npm to 1.1.12 * Upgrade npm to 1.1.12
- upgrade node-gyp to 0.3.7 * upgrade node-gyp to 0.3.7
- work around AV-locked directories on Windows * work around AV-locked directories on Windows
- Fix isaacs/npm[#2293](https://github.com/joyent/node/issues/2293) Don't try to 'uninstall' / * Fix isaacs/npm[#2293](https://github.com/joyent/node/issues/2293) Don't try to 'uninstall' /
- Exclude symbolic links from packages. * Exclude symbolic links from packages.
- Fix isaacs/npm[#2275](https://github.com/joyent/node/issues/2275) Spurious 'unresolvable cycle' error. * Fix isaacs/npm[#2275](https://github.com/joyent/node/issues/2275) Spurious 'unresolvable cycle' error.
- Exclude/include dot files as if they were normal files * Exclude/include dot files as if they were normal files
<a id="0.6.13"></a> <a id="0.6.13"></a>
## 2012.03.15 Version 0.6.13 (stable) ## 2012.03.15 Version 0.6.13 (stable)
@ -1714,15 +1714,15 @@ https://github.com/nodejs/node/commit/9f7f86b534f8556290eb8cad915984ff4ca54996
* Windows: include syscall in fs errors (Bert Belder) * Windows: include syscall in fs errors (Bert Belder)
* Fix fs.watch ENOSYS on Linux kernel version mismatch (Ben Noordhuis) * Fix fs.watch ENOSYS on Linux kernel version mismatch (Ben Noordhuis)
* Update npm to 1.1.9 * Update npm to 1.1.9
- upgrade node-gyp to 0.3.5 (Nathan Rajlich) * upgrade node-gyp to 0.3.5 (Nathan Rajlich)
- Fix isaacs/npm[#2249](https://github.com/joyent/node/issues/2249) Add cache-max and cache-min configs * Fix isaacs/npm[#2249](https://github.com/joyent/node/issues/2249) Add cache-max and cache-min configs
- Properly redirect across https/http registry requests * Properly redirect across https/http registry requests
- log config usage if undefined key in set function (Kris Windham) * log config usage if undefined key in set function (Kris Windham)
- Add support for os/cpu fields in package.json (Adam Blackburn) * Add support for os/cpu fields in package.json (Adam Blackburn)
- Automatically node-gyp packages containing a binding.gyp * Automatically node-gyp packages containing a binding.gyp
- Fix failures unpacking in UNC shares * Fix failures unpacking in UNC shares
- Never create un-listable directories * Never create un-listable directories
- Handle cases where an optionalDependency fails to build * Handle cases where an optionalDependency fails to build
<a id="0.6.12"></a> <a id="0.6.12"></a>
## 2012.03.02 Version 0.6.12 (stable) ## 2012.03.02 Version 0.6.12 (stable)
@ -1744,13 +1744,13 @@ https://github.com/nodejs/node/commit/48a2d34cfe6b7e1c9d15202a4ef5e3c82d1fba35
* windows: fs: handle EOF in read (Brandon Philips) * windows: fs: handle EOF in read (Brandon Philips)
* windows: avoid IOCP short-circuit on non-ifs lsps (Igor Zinkovsky) * windows: avoid IOCP short-circuit on non-ifs lsps (Igor Zinkovsky)
* Upgrade npm to 1.1.4 (isaacs) * Upgrade npm to 1.1.4 (isaacs)
- windows fixes * windows fixes
- Bundle nested bundleDependencies properly * Bundle nested bundleDependencies properly
- install: support --save with url install targets * install: support --save with url install targets
- shrinkwrap: behave properly with url-installed modules * shrinkwrap: behave properly with url-installed modules
- support installing uncompressed tars or single file modules from urls etc. * support installing uncompressed tars or single file modules from urls etc.
- don't run make clean on rebuild * don't run make clean on rebuild
- support HTTPS-over-HTTP proxy tunneling * support HTTPS-over-HTTP proxy tunneling
<a id="0.6.11"></a> <a id="0.6.11"></a>
## 2012.02.17 Version 0.6.11 (stable) ## 2012.02.17 Version 0.6.11 (stable)
@ -1774,9 +1774,9 @@ https://github.com/nodejs/node/commit/1eb1fe32250fc88cb5b0a97cddf3e02be02e3f4a
* unix: don't flush tty on switch to raw mode (Ben Noordhuis) * unix: don't flush tty on switch to raw mode (Ben Noordhuis)
* windows: reset brightness when reverting to default text color (Bert Belder) * windows: reset brightness when reverting to default text color (Bert Belder)
* npm: update to 1.1.1 * npm: update to 1.1.1
- Update which, fstream, mkdirp, request, and rimraf * Update which, fstream, mkdirp, request, and rimraf
- Fix [#2123](https://github.com/joyent/node/issues/2123) Set path properly for lifecycle scripts on windows * Fix [#2123](https://github.com/joyent/node/issues/2123) Set path properly for lifecycle scripts on windows
- Mark the root as seen, so we don't recurse into it. Fixes [#1838](https://github.com/joyent/node/issues/1838). (Martin Cooper) * Mark the root as seen, so we don't recurse into it. Fixes [#1838](https://github.com/joyent/node/issues/1838). (Martin Cooper)
<a id="0.6.10"></a> <a id="0.6.10"></a>
## 2012.02.02, Version 0.6.10 (stable) ## 2012.02.02, Version 0.6.10 (stable)
@ -1800,7 +1800,7 @@ https://github.com/nodejs/node/commit/051908e023f87894fa68f5b64d0b99a19a7db01e
https://github.com/nodejs/node/commit/f19e20d33f57c4d2853aaea7d2724d44f3b0012f https://github.com/nodejs/node/commit/f19e20d33f57c4d2853aaea7d2724d44f3b0012f
* dgram: Bring back missing functionality for Unix (Dan VerWeire, Roman Shtylman, Ben Noordhuis) * dgram: Bring back missing functionality for Unix (Dan VerWeire, Roman Shtylman, Ben Noordhuis)
- Note: Windows UDP support not yet complete. * Note: Windows UDP support not yet complete.
* http: Fix parser memory leak (koichik) * http: Fix parser memory leak (koichik)
* zlib: Fix [#2365](https://github.com/joyent/node/issues/2365) crashes on invalid input (Nicolas LaCasse) * zlib: Fix [#2365](https://github.com/joyent/node/issues/2365) crashes on invalid input (Nicolas LaCasse)
@ -2544,8 +2544,8 @@ https://github.com/nodejs/node/commit/e8aef84191bc2c1ba2bcaa54f30aabde7f03769b
https://github.com/nodejs/node/commit/eb155ea6f6a6aa341aa8c731dca8da545c6a4008 https://github.com/nodejs/node/commit/eb155ea6f6a6aa341aa8c731dca8da545c6a4008
* require() improvements (isaacs) * require() improvements (isaacs)
- understand package.json (isaacs) * understand package.json (isaacs)
- look for 'node_modules' dir * look for 'node_modules' dir
* cmake fixes (Daniel Gröber) * cmake fixes (Daniel Gröber)
* http: fix buffer writes to outgoing messages (Russell Haering) * http: fix buffer writes to outgoing messages (Russell Haering)
@ -2677,13 +2677,13 @@ https://github.com/nodejs/node/commit/4bb914bde9f3c2d6de00853353b6b8fc9c66143a
* 'make lint' * 'make lint'
* oprofile support (./configure --oprofile) * oprofile support (./configure --oprofile)
* Lots of bug fixes, including: * Lots of bug fixes, including:
- Memory leak in ChildProcess:Spawn(). (Tom Hughes) * Memory leak in ChildProcess:Spawn(). (Tom Hughes)
- buffer.slice(0, 0) * buffer.slice(0, 0)
- Global variable leaks * Global variable leaks
- clearTimeouts calling multiple times (Michael W) * clearTimeouts calling multiple times (Michael W)
- utils.inspect's detection of circular structures (Tim Cooijmans) * utils.inspect's detection of circular structures (Tim Cooijmans)
- Apple's threaded write()s bug (Jorge Chamorro Bieling) * Apple's threaded write()s bug (Jorge Chamorro Bieling)
- Make sure raw mode is disabled when exiting a terminal-based REPL. * Make sure raw mode is disabled when exiting a terminal-based REPL.
(Brian White) (Brian White)
* Deprecate process.compile, process.ENV * Deprecate process.compile, process.ENV
@ -2695,8 +2695,8 @@ https://github.com/nodejs/node/commit/4bb914bde9f3c2d6de00853353b6b8fc9c66143a
https://github.com/nodejs/node/commit/ce9a54aa1fbf709dd30316af8a2f14d83150e947 https://github.com/nodejs/node/commit/ce9a54aa1fbf709dd30316af8a2f14d83150e947
* TLS improvements (Paul Querna) * TLS improvements (Paul Querna)
- Centralize error handling in SecureStream * Centralize error handling in SecureStream
- Add SecurePair for handling of a ssl/tls stream. * Add SecurePair for handling of a ssl/tls stream.
* New documentation organization (Micheil Smith) * New documentation organization (Micheil Smith)
* allowHalfOpen TCP connections disabled by default. * allowHalfOpen TCP connections disabled by default.
@ -2725,9 +2725,9 @@ https://github.com/nodejs/node/commit/ce9a54aa1fbf709dd30316af8a2f14d83150e947
could not be written to the file in a single write() call. could not be written to the file in a single write() call.
* new path.join behavior (isaacs) * new path.join behavior (isaacs)
- Express desired path.join behavior in tests. * Express desired path.join behavior in tests.
- Update fs.realpath to reflect new path.join behavior * Update fs.realpath to reflect new path.join behavior
- Update url.resolve() to use new path.join behavior. * Update url.resolve() to use new path.join behavior.
* API: Move process.binding('evals') to require('vm') * API: Move process.binding('evals') to require('vm')
* Fix V8 build on Cygwin (Bert Belder) * Fix V8 build on Cygwin (Bert Belder)
@ -2756,11 +2756,11 @@ https://github.com/nodejs/node/commit/1582cfebd6719b2d2373547994b3dca5c8c569c0
* HTTP trailers (Mark Nottingham) * HTTP trailers (Mark Nottingham)
* http 100-continue support (Mark Nottingham) * http 100-continue support (Mark Nottingham)
* Module system simplifications (Herbert Vojčík, isaacs, Tim-Smart) * Module system simplifications (Herbert Vojčík, isaacs, Tim-Smart)
- remove require.async * remove require.async
- remove registerExtension, add .extensions * remove registerExtension, add .extensions
- expose require.resolve * expose require.resolve
- expose require.cache * expose require.cache
- require looks in node_modules folders * require looks in node_modules folders
* Add --eval command line option (TJ Holowaychuk) * Add --eval command line option (TJ Holowaychuk)
* Commas last in sys.inspect * Commas last in sys.inspect
@ -3047,11 +3047,11 @@ https://github.com/nodejs/node/commit/311d7dee19034ff1c6bc9098c36973b8d687eaba
https://github.com/nodejs/node/commit/07e64d45ffa1856e824c4fa6afd0442ba61d6fd8 https://github.com/nodejs/node/commit/07e64d45ffa1856e824c4fa6afd0442ba61d6fd8
* Merge writing of networking system (net2) * Merge writing of networking system (net2)
- New Buffer object for binary data. * New Buffer object for binary data.
- Support UNIX sockets, Pipes * Support UNIX sockets, Pipes
- Uniform stream API * Uniform stream API
- Currently no SSL * Currently no SSL
- Legacy modules can be accessed at 'http_old' and 'tcp_old' * Legacy modules can be accessed at 'http_old' and 'tcp_old'
* Replace udns with c-ares. (Krishna Rajendran) * Replace udns with c-ares. (Krishna Rajendran)
* New documentation system using Markdown and Ronn * New documentation system using Markdown and Ronn
@ -3099,8 +3099,8 @@ https://github.com/nodejs/node/commit/61c801413544a50000faa7f58376e9b33ba6254f
https://github.com/nodejs/node/commit/39b63dfe1737d46a8c8818c92773ef181fd174b3 https://github.com/nodejs/node/commit/39b63dfe1737d46a8c8818c92773ef181fd174b3
* API: * API:
- Move process.watchFile into fs module * Move process.watchFile into fs module
- Move process.inherits to sys * Move process.inherits to sys
* Improve Solaris port * Improve Solaris port
* tcp.Connection.prototype.write now returns boolean to indicate if * tcp.Connection.prototype.write now returns boolean to indicate if
@ -3126,7 +3126,7 @@ https://github.com/nodejs/node/commit/39b63dfe1737d46a8c8818c92773ef181fd174b3
https://github.com/nodejs/node/commit/bb0d1e65e1671aaeb21fac186b066701da0bc33b https://github.com/nodejs/node/commit/bb0d1e65e1671aaeb21fac186b066701da0bc33b
* Major API Changes * Major API Changes
- Promises removed. See * Promises removed. See
http://groups.google.com/group/nodejs/msg/426f3071f3eec16b http://groups.google.com/group/nodejs/msg/426f3071f3eec16b
http://groups.google.com/group/nodejs/msg/df199d233ff17efa http://groups.google.com/group/nodejs/msg/df199d233ff17efa
The API for fs was The API for fs was
@ -3138,10 +3138,10 @@ https://github.com/nodejs/node/commit/bb0d1e65e1671aaeb21fac186b066701da0bc33b
if (err) throw err; if (err) throw err;
puts("/usr files: " + files); puts("/usr files: " + files);
}); });
- Synchronous fs operations exposed, use with care. * Synchronous fs operations exposed, use with care.
- tcp.Connection.prototype.readPause() and readResume() * tcp.Connection.prototype.readPause() and readResume()
renamed to pause() and resume() renamed to pause() and resume()
- http.ServerResponse.prototype.sendHeader() renamed to * http.ServerResponse.prototype.sendHeader() renamed to
writeHeader(). Now accepts reasonPhrase. writeHeader(). Now accepts reasonPhrase.
* Compact garbage on idle. * Compact garbage on idle.
@ -3159,20 +3159,20 @@ https://github.com/nodejs/node/commit/bb0d1e65e1671aaeb21fac186b066701da0bc33b
https://github.com/nodejs/node/commit/87d5e5b316a4276bcf881f176971c1a237dcdc7a https://github.com/nodejs/node/commit/87d5e5b316a4276bcf881f176971c1a237dcdc7a
* Major API Changes * Major API Changes
- Remove 'file' module * Remove 'file' module
- require('posix') -----------------> require('fs') * require('posix') -----------------> require('fs')
- fs.cat ---------------------------> fs.readFile * fs.cat ---------------------------> fs.readFile
- file.write -----------------------> fs.writeFile * file.write -----------------------> fs.writeFile
- TCP 'receive' event --------------> 'data' * TCP 'receive' event --------------> 'data'
- TCP 'eof' event ------------------> 'end' * TCP 'eof' event ------------------> 'end'
- TCP send() -----------------------> write() * TCP send() -----------------------> write()
- HTTP sendBody() ------------------> write() * HTTP sendBody() ------------------> write()
- HTTP finish() --------------------> close() * HTTP finish() --------------------> close()
- HTTP 'body' event ----------------> 'data' * HTTP 'body' event ----------------> 'data'
- HTTP 'complete' event ------------> 'end' * HTTP 'complete' event ------------> 'end'
- http.Client.prototype.close() (formerly finish()) no longer * http.Client.prototype.close() (formerly finish()) no longer
takes an argument. Add the 'response' listener manually. takes an argument. Add the 'response' listener manually.
- Allow strings for the flag argument to fs.open * Allow strings for the flag argument to fs.open
("r", "r+", "w", "w+", "a", "a+") ("r", "r+", "w", "w+", "a", "a+")
* Added multiple arg support for sys.puts(), print(), etc. * Added multiple arg support for sys.puts(), print(), etc.
@ -3257,9 +3257,9 @@ https://github.com/nodejs/node/commit/da00413196e432247346d9e587f8c78ce5ceb087
(Micheil Smith) (Micheil Smith)
* API: change some Promise behavior (Felix Geisendörfer) * API: change some Promise behavior (Felix Geisendörfer)
- Removed Promise.cancel() * Removed Promise.cancel()
- Support late callback binding * Support late callback binding
- Make unhandled Promise errors throw an exception * Make unhandled Promise errors throw an exception
* Upgrade V8 to 2.0.6.1 * Upgrade V8 to 2.0.6.1
* Solaris port (Erich Ocean) * Solaris port (Erich Ocean)
@ -3428,16 +3428,16 @@ https://github.com/nodejs/node/commit/d1f69ef35dac810530df8249d523add168e09f03
https://github.com/nodejs/node/commit/726865af7bbafe58435986f4a193ff11c84e4bfe https://github.com/nodejs/node/commit/726865af7bbafe58435986f4a193ff11c84e4bfe
* API: Use CommonJS-style module requiring * API: Use CommonJS-style module requiring
- require("/sys.js") becomes require("sys") * require("/sys.js") becomes require("sys")
- require("circle.js") becomes require("./circle") * require("circle.js") becomes require("./circle")
- process.path.join() becomes require("path").join() * process.path.join() becomes require("path").join()
- __module becomes module * __module becomes module
* API: Many namespacing changes * API: Many namespacing changes
- Move node.\* into process.\* * Move node.\* into process.\*
- Move node.dns into module "dns" * Move node.dns into module "dns"
- Move node.fs into module "posix" * Move node.fs into module "posix"
- process is no longer the global object. GLOBAL is. * process is no longer the global object. GLOBAL is.
For more information on the API changes see: For more information on the API changes see:
http://thread.gmane.org/gmane.comp.lang.javascript.nodejs/6 http://thread.gmane.org/gmane.comp.lang.javascript.nodejs/6

View File

@ -330,15 +330,15 @@ See https://github.com/nodejs/io.js/labels/confirmed-bug for complete and curren
* **buffer**: Fixed a couple large memory leaks (Ben Noordhuis) [#2352](https://github.com/nodejs/node/pull/2352). * **buffer**: Fixed a couple large memory leaks (Ben Noordhuis) [#2352](https://github.com/nodejs/node/pull/2352).
* **crypto**: * **crypto**:
- Fixed a couple of minor memory leaks (Karl Skomski) [#2375](https://github.com/nodejs/node/pull/2375). * Fixed a couple of minor memory leaks (Karl Skomski) [#2375](https://github.com/nodejs/node/pull/2375).
- Signing now checks for OpenSSL errors (Minqi Pan) [#2342](https://github.com/nodejs/node/pull/2342). **Note that this may expose previously hidden errors in user code.** * Signing now checks for OpenSSL errors (Minqi Pan) [#2342](https://github.com/nodejs/node/pull/2342). **Note that this may expose previously hidden errors in user code.**
* **intl**: Intl support using small-icu is now enabled by default in builds (Steven R. Loomis) [#2264](https://github.com/nodejs/node/pull/2264). * **intl**: Intl support using small-icu is now enabled by default in builds (Steven R. Loomis) [#2264](https://github.com/nodejs/node/pull/2264).
- [`String#normalize()`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/normalize) can now be used for unicode normalization. * [`String#normalize()`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/normalize) can now be used for unicode normalization.
- The [`Intl`](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Intl) object and various `String` and `Number` methods are present, but only support the English locale. * The [`Intl`](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Intl) object and various `String` and `Number` methods are present, but only support the English locale.
- For support of all locales, node must be built with [full-icu](https://github.com/nodejs/node#build-with-full-icu-support-all-locales-supported-by-icu). * For support of all locales, node must be built with [full-icu](https://github.com/nodejs/node#build-with-full-icu-support-all-locales-supported-by-icu).
* **tls**: Fixed tls throughput being much lower after an incorrect merge (Fedor Indutny) [#2381](https://github.com/nodejs/node/pull/2381). * **tls**: Fixed tls throughput being much lower after an incorrect merge (Fedor Indutny) [#2381](https://github.com/nodejs/node/pull/2381).
* **tools**: The v8 tick processor now comes bundled with node (Matt Loring) [#2090](https://github.com/nodejs/node/pull/2090). * **tools**: The v8 tick processor now comes bundled with node (Matt Loring) [#2090](https://github.com/nodejs/node/pull/2090).
- This can be used by producing performance profiling output by running node with `--perf`, then running your appropriate platform's script on the output as found in [tools/v8-prof](https://github.com/nodejs/node/tree/master/tools/v8-prof). * This can be used by producing performance profiling output by running node with `--perf`, then running your appropriate platform's script on the output as found in [tools/v8-prof](https://github.com/nodejs/node/tree/master/tools/v8-prof).
* **util**: `util.inspect(obj)` now prints the constructor name of the object if there is one (Christopher Monsanto) [#1935](https://github.com/nodejs/io.js/pull/1935). * **util**: `util.inspect(obj)` now prints the constructor name of the object if there is one (Christopher Monsanto) [#1935](https://github.com/nodejs/io.js/pull/1935).
### Known issues ### Known issues
@ -398,30 +398,30 @@ See https://github.com/nodejs/io.js/labels/confirmed-bug for complete and curren
### Notable changes ### Notable changes
* **buffer**: * **buffer**:
- Due to changes in V8, it has been necessary to reimplement `Buffer` on top of V8's `Uint8Array`. Every effort has been made to minimize the performance impact, however `Buffer` instantiation is measurably slower. Access operations may be faster in some circumstances but the exact performance profile and difference over previous versions will depend on how `Buffer` is used within applications. (Trevor Norris) [#1825](https://github.com/nodejs/node/pull/1825). * Due to changes in V8, it has been necessary to reimplement `Buffer` on top of V8's `Uint8Array`. Every effort has been made to minimize the performance impact, however `Buffer` instantiation is measurably slower. Access operations may be faster in some circumstances but the exact performance profile and difference over previous versions will depend on how `Buffer` is used within applications. (Trevor Norris) [#1825](https://github.com/nodejs/node/pull/1825).
- `Buffer` can now take `ArrayBuffer`s as a constructor argument (Trevor Norris) [#2002](https://github.com/nodejs/node/pull/2002). * `Buffer` can now take `ArrayBuffer`s as a constructor argument (Trevor Norris) [#2002](https://github.com/nodejs/node/pull/2002).
- When a single buffer is passed to `Buffer.concat()`, a new, copied `Buffer` object will be returned; previous behavior was to return the original `Buffer` object (Sakthipriyan Vairamani) [#1937](https://github.com/nodejs/node/pull/1937). * When a single buffer is passed to `Buffer.concat()`, a new, copied `Buffer` object will be returned; previous behavior was to return the original `Buffer` object (Sakthipriyan Vairamani) [#1937](https://github.com/nodejs/node/pull/1937).
* **build**: PPC support has been added to core to allow compiling on pLinux BE and LE (AIX support coming soon) (Michael Dawson) [#2124](https://github.com/nodejs/node/pull/2124). * **build**: PPC support has been added to core to allow compiling on pLinux BE and LE (AIX support coming soon) (Michael Dawson) [#2124](https://github.com/nodejs/node/pull/2124).
* **dgram**: If an error occurs within `socket.send()` and a callback has been provided, the error is only passed as the first argument to the callback and not emitted on the `socket` object; previous behavior was to do both (Matteo Collina & Chris Dickinson) [#1796](https://github.com/nodejs/node/pull/1796) * **dgram**: If an error occurs within `socket.send()` and a callback has been provided, the error is only passed as the first argument to the callback and not emitted on the `socket` object; previous behavior was to do both (Matteo Collina & Chris Dickinson) [#1796](https://github.com/nodejs/node/pull/1796)
* **freelist**: Deprecate the undocumented `freelist` core module (Sakthipriyan Vairamani) [#2176](https://github.com/nodejs/node/pull/2176). * **freelist**: Deprecate the undocumented `freelist` core module (Sakthipriyan Vairamani) [#2176](https://github.com/nodejs/node/pull/2176).
* **http**: * **http**:
- Status codes now all use the official [IANA names](http://www.iana.org/assignments/http-status-codes) as per [RFC7231](https://tools.ietf.org/html/rfc7231), e.g. `http.STATUS_CODES[414]` now returns `'URI Too Long'` rather than `'Request-URI Too Large'` (jomo) [#1470](https://github.com/nodejs/node/pull/1470). * Status codes now all use the official [IANA names](http://www.iana.org/assignments/http-status-codes) as per [RFC7231](https://tools.ietf.org/html/rfc7231), e.g. `http.STATUS_CODES[414]` now returns `'URI Too Long'` rather than `'Request-URI Too Large'` (jomo) [#1470](https://github.com/nodejs/node/pull/1470).
- Calling .getName() on an HTTP agent no longer returns a trailing colon, HTTPS agents will no longer return an extra colon near the middle of the string (Brendan Ashworth) [#1617](https://github.com/nodejs/node/pull/1617). * Calling .getName() on an HTTP agent no longer returns a trailing colon, HTTPS agents will no longer return an extra colon near the middle of the string (Brendan Ashworth) [#1617](https://github.com/nodejs/node/pull/1617).
* **node**: * **node**:
- `NODE_MODULE_VERSION` has been bumped to `45` to reflect the break in ABI (Rod Vagg) [#2096](https://github.com/nodejs/node/pull/2096). * `NODE_MODULE_VERSION` has been bumped to `45` to reflect the break in ABI (Rod Vagg) [#2096](https://github.com/nodejs/node/pull/2096).
- Introduce a new `process.release` object that contains a `name` property set to `'io.js'` and `sourceUrl`, `headersUrl` and `libUrl` (Windows only) properties containing URLs for the relevant resources; this is intended to be used by node-gyp (Rod Vagg) [#2154](https://github.com/nodejs/node/pull/2154). * Introduce a new `process.release` object that contains a `name` property set to `'io.js'` and `sourceUrl`, `headersUrl` and `libUrl` (Windows only) properties containing URLs for the relevant resources; this is intended to be used by node-gyp (Rod Vagg) [#2154](https://github.com/nodejs/node/pull/2154).
- The version of node-gyp bundled with io.js now downloads and uses a tarball of header files from iojs.org rather than the full source for compiling native add-ons; it is hoped this is a temporary floating patch and the change will be upstreamed to node-gyp soon (Rod Vagg) [#2066](https://github.com/nodejs/node/pull/2066). * The version of node-gyp bundled with io.js now downloads and uses a tarball of header files from iojs.org rather than the full source for compiling native add-ons; it is hoped this is a temporary floating patch and the change will be upstreamed to node-gyp soon (Rod Vagg) [#2066](https://github.com/nodejs/node/pull/2066).
* **repl**: Persistent history is now enabled by default. The history file is located at ~/.node_repl_history, which can be overridden by the new environment variable `NODE_REPL_HISTORY`. This deprecates the previous `NODE_REPL_HISTORY_FILE` variable. Additionally, the format of the file has been changed to plain text to better handle file corruption. (Jeremiah Senkpiel) [#2224](https://github.com/nodejs/node/pull/2224). * **repl**: Persistent history is now enabled by default. The history file is located at ~/.node_repl_history, which can be overridden by the new environment variable `NODE_REPL_HISTORY`. This deprecates the previous `NODE_REPL_HISTORY_FILE` variable. Additionally, the format of the file has been changed to plain text to better handle file corruption. (Jeremiah Senkpiel) [#2224](https://github.com/nodejs/node/pull/2224).
* **smalloc**: The `smalloc` module has been removed as it is no longer possible to provide the API due to changes in V8 (Ben Noordhuis) [#2022](https://github.com/nodejs/node/pull/2022). * **smalloc**: The `smalloc` module has been removed as it is no longer possible to provide the API due to changes in V8 (Ben Noordhuis) [#2022](https://github.com/nodejs/node/pull/2022).
* **tls**: Add `server.getTicketKeys()` and `server.setTicketKeys()` methods for [TLS session key](https://www.ietf.org/rfc/rfc5077.txt) rotation (Fedor Indutny) [#2227](https://github.com/nodejs/node/pull/2227). * **tls**: Add `server.getTicketKeys()` and `server.setTicketKeys()` methods for [TLS session key](https://www.ietf.org/rfc/rfc5077.txt) rotation (Fedor Indutny) [#2227](https://github.com/nodejs/node/pull/2227).
* **v8**: Upgraded to 4.4.63.26 * **v8**: Upgraded to 4.4.63.26
- ES6: Enabled [computed property names](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Object_initializer#Computed_property_names) * ES6: Enabled [computed property names](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Object_initializer#Computed_property_names)
- ES6: `Array` can now be subclassed in strict mode * ES6: `Array` can now be subclassed in strict mode
- ES6: Implement [rest parameters](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Functions/rest_parameters) in staging, use the `--harmony-rest-parameters` command line flag * ES6: Implement [rest parameters](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Functions/rest_parameters) in staging, use the `--harmony-rest-parameters` command line flag
- ES6: Implement the [spread operator](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Spread_operator) in staging, use the `--harmony-spreadcalls` command line flag * ES6: Implement the [spread operator](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Spread_operator) in staging, use the `--harmony-spreadcalls` command line flag
- Removed `SetIndexedPropertiesToExternalArrayData` and related APIs, forcing a shift to `Buffer` to be reimplemented based on `Uint8Array` * Removed `SetIndexedPropertiesToExternalArrayData` and related APIs, forcing a shift to `Buffer` to be reimplemented based on `Uint8Array`
- Introduction of `Maybe` and `MaybeLocal` C++ API for objects which _may_ or _may not_ have a value. * Introduction of `Maybe` and `MaybeLocal` C++ API for objects which _may_ or _may not_ have a value.
- Added support for PPC * Added support for PPC
See also https://github.com/nodejs/node/wiki/Breaking-Changes#300-from-2x for a summary of the breaking changes (SEMVER-MAJOR). See also https://github.com/nodejs/node/wiki/Breaking-Changes#300-from-2x for a summary of the breaking changes (SEMVER-MAJOR).
@ -705,8 +705,8 @@ See https://github.com/nodejs/node/labels/confirmed-bug for complete and current
* **v8**: Fixed an out-of-band write in utf8 decoder. **This is an important security update** as it can be used to cause a denial of service attack. * **v8**: Fixed an out-of-band write in utf8 decoder. **This is an important security update** as it can be used to cause a denial of service attack.
* **openssl**: Upgrade to 1.0.2b and 1.0.2c, introduces DHE man-in-the-middle protection (Logjam) and fixes malformed ECParameters causing infinite loop (CVE-2015-1788). See the [security advisory](https://www.openssl.org/news/secadv_20150611.txt) for full details. (Shigeki Ohtsu) [#1950](https://github.com/nodejs/node/pull/1950) [#1958](https://github.com/nodejs/node/pull/1958) * **openssl**: Upgrade to 1.0.2b and 1.0.2c, introduces DHE man-in-the-middle protection (Logjam) and fixes malformed ECParameters causing infinite loop (CVE-2015-1788). See the [security advisory](https://www.openssl.org/news/secadv_20150611.txt) for full details. (Shigeki Ohtsu) [#1950](https://github.com/nodejs/node/pull/1950) [#1958](https://github.com/nodejs/node/pull/1958)
* **build**: * **build**:
- Added support for compiling with Microsoft Visual C++ 2015 * Added support for compiling with Microsoft Visual C++ 2015
- Started building and distributing headers-only tarballs along with binaries * Started building and distributing headers-only tarballs along with binaries
### Known issues ### Known issues
@ -752,8 +752,8 @@ See https://github.com/nodejs/node/labels/confirmed-bug for complete and current
### Notable changes ### Notable changes
* **build**: * **build**:
- Added support for compiling with Microsoft Visual C++ 2015 * Added support for compiling with Microsoft Visual C++ 2015
- Started building and distributing headers-only tarballs along with binaries * Started building and distributing headers-only tarballs along with binaries
### Known issues ### Known issues
@ -883,23 +883,23 @@ See https://github.com/nodejs/node/labels/confirmed-bug for complete and current
### Notable changes ### Notable changes
* **libuv**: Upgraded to 1.6.0 and 1.6.1, see [full ChangeLog](https://github.com/libuv/libuv/blob/60e515d9e6f3d86c0eedad583805201f32ea3aed/ChangeLog#L1-L36) for details. (Saúl Ibarra Corretgé) [#1905](https://github.com/nodejs/node/pull/1905) [#1889](https://github.com/nodejs/node/pull/1889). Highlights include: * **libuv**: Upgraded to 1.6.0 and 1.6.1, see [full ChangeLog](https://github.com/libuv/libuv/blob/60e515d9e6f3d86c0eedad583805201f32ea3aed/ChangeLog#L1-L36) for details. (Saúl Ibarra Corretgé) [#1905](https://github.com/nodejs/node/pull/1905) [#1889](https://github.com/nodejs/node/pull/1889). Highlights include:
- Fix TTY becoming blocked on OS X * Fix TTY becoming blocked on OS X
- Fix UDP send callbacks to not to be synchronous * Fix UDP send callbacks to not to be synchronous
- Add `uv_os_homedir()` (exposed as `os.homedir()`, see below) * Add `uv_os_homedir()` (exposed as `os.homedir()`, see below)
* **npm**: See full [release notes](https://github.com/npm/npm/releases/tag/v2.11.1) for details. (Kat Marchán) [#1899](https://github.com/nodejs/node/pull/1899). Highlight: * **npm**: See full [release notes](https://github.com/npm/npm/releases/tag/v2.11.1) for details. (Kat Marchán) [#1899](https://github.com/nodejs/node/pull/1899). Highlight:
- Use GIT_SSH_COMMAND (available as of Git 2.3) * Use GIT_SSH_COMMAND (available as of Git 2.3)
* **openssl**: * **openssl**:
- Upgrade to 1.0.2b and 1.0.2c, introduces DHE man-in-the-middle protection (Logjam) and fixes malformed ECParameters causing infinite loop (CVE-2015-1788). See the [security advisory](https://www.openssl.org/news/secadv_20150611.txt) for full details. (Shigeki Ohtsu) [#1950](https://github.com/nodejs/node/pull/1950) [#1958](https://github.com/nodejs/node/pull/1958) * Upgrade to 1.0.2b and 1.0.2c, introduces DHE man-in-the-middle protection (Logjam) and fixes malformed ECParameters causing infinite loop (CVE-2015-1788). See the [security advisory](https://www.openssl.org/news/secadv_20150611.txt) for full details. (Shigeki Ohtsu) [#1950](https://github.com/nodejs/node/pull/1950) [#1958](https://github.com/nodejs/node/pull/1958)
- Support [FIPS](https://en.wikipedia.org/wiki/Federal_Information_Processing_Standards) mode of OpenSSL, see [README](https://github.com/nodejs/node#building-iojs-with-fips-compliant-openssl) for instructions. (Fedor Indutny) [#1890](https://github.com/nodejs/node/pull/1890) * Support [FIPS](https://en.wikipedia.org/wiki/Federal_Information_Processing_Standards) mode of OpenSSL, see [README](https://github.com/nodejs/node#building-iojs-with-fips-compliant-openssl) for instructions. (Fedor Indutny) [#1890](https://github.com/nodejs/node/pull/1890)
* **os**: Add `os.homedir()` method. (Colin Ihrig) [#1791](https://github.com/nodejs/node/pull/1791) * **os**: Add `os.homedir()` method. (Colin Ihrig) [#1791](https://github.com/nodejs/node/pull/1791)
* **smalloc**: Deprecate whole module. (Vladimir Kurchatkin) [#1822](https://github.com/nodejs/node/pull/1822) * **smalloc**: Deprecate whole module. (Vladimir Kurchatkin) [#1822](https://github.com/nodejs/node/pull/1822)
* Add new collaborators: * Add new collaborators:
- Alex Kocharin ([@rlidwka](https://github.com/rlidwka)) * Alex Kocharin ([@rlidwka](https://github.com/rlidwka))
- Christopher Monsanto ([@monsanto](https://github.com/monsanto)) * Christopher Monsanto ([@monsanto](https://github.com/monsanto))
- Ali Ijaz Sheikh ([@ofrobots](https://github.com/ofrobots)) * Ali Ijaz Sheikh ([@ofrobots](https://github.com/ofrobots))
- Oleg Elifantiev ([@Olegas](https://github.com/Olegas)) * Oleg Elifantiev ([@Olegas](https://github.com/Olegas))
- Domenic Denicola ([@domenic](https://github.com/domenic)) * Domenic Denicola ([@domenic](https://github.com/domenic))
- Rich Trott ([@Trott](https://github.com/Trott)) * Rich Trott ([@Trott](https://github.com/Trott))
### Known issues ### Known issues
@ -1128,9 +1128,9 @@ See https://github.com/nodejs/node/labels/confirmed-bug for complete and current
* **crypto**: significantly reduced memory usage for TLS (Fedor Indutny & Сковорода Никита Андреевич) [#1529](https://github.com/nodejs/node/pull/1529) * **crypto**: significantly reduced memory usage for TLS (Fedor Indutny & Сковорода Никита Андреевич) [#1529](https://github.com/nodejs/node/pull/1529)
* **npm**: Upgrade npm to 2.9.0. See the [v2.8.4](https://github.com/npm/npm/releases/tag/v2.8.4) and [v2.9.0](https://github.com/npm/npm/releases/tag/v2.9.0) release notes for details. Summary: * **npm**: Upgrade npm to 2.9.0. See the [v2.8.4](https://github.com/npm/npm/releases/tag/v2.8.4) and [v2.9.0](https://github.com/npm/npm/releases/tag/v2.9.0) release notes for details. Summary:
- Add support for default author field to make `npm init -y` work without user-input (@othiym23) [npm/npm/d8eee6cf9d](https://github.com/npm/npm/commit/d8eee6cf9d2ff7aca68dfaed2de76824a3e0d9 * Add support for default author field to make `npm init -y` work without user-input (@othiym23) [npm/npm/d8eee6cf9d](https://github.com/npm/npm/commit/d8eee6cf9d2ff7aca68dfaed2de76824a3e0d9
- Include local modules in `npm outdated` and `npm update` (@ArnaudRinquin) [npm/npm#7426](https://github.com/npm/npm/issues/7426) * Include local modules in `npm outdated` and `npm update` (@ArnaudRinquin) [npm/npm#7426](https://github.com/npm/npm/issues/7426)
- The prefix used before the version number on `npm version` is now configurable via `tag-version-prefix` (@kkragenbrink) [npm/npm#8014](https://github.com/npm/npm/issues/8014) * The prefix used before the version number on `npm version` is now configurable via `tag-version-prefix` (@kkragenbrink) [npm/npm#8014](https://github.com/npm/npm/issues/8014)
### Known issues ### Known issues
@ -1215,14 +1215,14 @@ See https://github.com/nodejs/node/labels/confirmed-bug for complete and current
### Notable changes ### Notable changes
* **async_wrap**: (Trevor Norris) [#1614](https://github.com/nodejs/node/pull/1614) * **async_wrap**: (Trevor Norris) [#1614](https://github.com/nodejs/node/pull/1614)
- it is now possible to filter by providers * it is now possible to filter by providers
- bit flags have been removed and replaced with method calls on the binding object * bit flags have been removed and replaced with method calls on the binding object
- _note that this is an unstable API so feature additions and breaking changes won't change io.js semver_ * _note that this is an unstable API so feature additions and breaking changes won't change io.js semver_
* **libuv**: resolves numerous io.js issues: * **libuv**: resolves numerous io.js issues:
- [#862](https://github.com/nodejs/node/issues/862) prevent spawning child processes with invalid stdio file descriptors * [#862](https://github.com/nodejs/node/issues/862) prevent spawning child processes with invalid stdio file descriptors
- [#1397](https://github.com/nodejs/node/issues/1397) fix EPERM error with fs.access(W_OK) on Windows * [#1397](https://github.com/nodejs/node/issues/1397) fix EPERM error with fs.access(W_OK) on Windows
- [#1621](https://github.com/nodejs/node/issues/1621) build errors associated with the bundled libuv * [#1621](https://github.com/nodejs/node/issues/1621) build errors associated with the bundled libuv
- [#1512](https://github.com/nodejs/node/issues/1512) should properly fix Windows termination errors * [#1512](https://github.com/nodejs/node/issues/1512) should properly fix Windows termination errors
* **addons**: the `NODE_DEPRECATED` macro was causing problems when compiling addons with older compilers, this should now be resolved (Ben Noordhuis) [#1626](https://github.com/nodejs/node/pull/1626) * **addons**: the `NODE_DEPRECATED` macro was causing problems when compiling addons with older compilers, this should now be resolved (Ben Noordhuis) [#1626](https://github.com/nodejs/node/pull/1626)
* **V8**: upgrade V8 from 4.2.77.18 to 4.2.77.20 with minor fixes, including a bug preventing builds on FreeBSD * **V8**: upgrade V8 from 4.2.77.18 to 4.2.77.20 with minor fixes, including a bug preventing builds on FreeBSD
@ -1275,30 +1275,30 @@ _Note: a new version of the 'url' module was reverted prior to release as it was
* **crypto**: significantly reduced memory usage for TLS (Fedor Indutny & Сковорода Никита Андреевич) [#1529](https://github.com/nodejs/node/pull/1529) * **crypto**: significantly reduced memory usage for TLS (Fedor Indutny & Сковорода Никита Андреевич) [#1529](https://github.com/nodejs/node/pull/1529)
* **net**: `socket.connect()` now accepts a `'lookup'` option for a custom DNS resolution mechanism, defaults to `dns.lookup()` (Evan Lucas) [#1505](https://github.com/nodejs/node/pull/1505) * **net**: `socket.connect()` now accepts a `'lookup'` option for a custom DNS resolution mechanism, defaults to `dns.lookup()` (Evan Lucas) [#1505](https://github.com/nodejs/node/pull/1505)
* **npm**: Upgrade npm to 2.9.0. See the [v2.8.4](https://github.com/npm/npm/releases/tag/v2.8.4) and [v2.9.0](https://github.com/npm/npm/releases/tag/v2.9.0) release notes for details. Notable items: * **npm**: Upgrade npm to 2.9.0. See the [v2.8.4](https://github.com/npm/npm/releases/tag/v2.8.4) and [v2.9.0](https://github.com/npm/npm/releases/tag/v2.9.0) release notes for details. Notable items:
- Add support for default author field to make `npm init -y` work without user-input (@othiym23) [npm/npm/d8eee6cf9d](https://github.com/npm/npm/commit/d8eee6cf9d2ff7aca68dfaed2de76824a3e0d9af) * Add support for default author field to make `npm init -y` work without user-input (@othiym23) [npm/npm/d8eee6cf9d](https://github.com/npm/npm/commit/d8eee6cf9d2ff7aca68dfaed2de76824a3e0d9af)
- Include local modules in `npm outdated` and `npm update` (@ArnaudRinquin) [npm/npm#7426](https://github.com/npm/npm/issues/7426) * Include local modules in `npm outdated` and `npm update` (@ArnaudRinquin) [npm/npm#7426](https://github.com/npm/npm/issues/7426)
- The prefix used before the version number on `npm version` is now configurable via `tag-version-prefix` (@kkragenbrink) [npm/npm#8014](https://github.com/npm/npm/issues/8014) * The prefix used before the version number on `npm version` is now configurable via `tag-version-prefix` (@kkragenbrink) [npm/npm#8014](https://github.com/npm/npm/issues/8014)
* **os**: `os.tmpdir()` is now cross-platform consistent and will no longer returns a path with a trailing slash on any platform (Christian Tellnes) [#747](https://github.com/nodejs/node/pull/747) * **os**: `os.tmpdir()` is now cross-platform consistent and will no longer returns a path with a trailing slash on any platform (Christian Tellnes) [#747](https://github.com/nodejs/node/pull/747)
* **process**: * **process**:
- `process.nextTick()` performance has been improved by between 2-42% across the benchmark suite, notable because this is heavily used across core (Brian White) [#1571](https://github.com/nodejs/node/pull/1571) * `process.nextTick()` performance has been improved by between 2-42% across the benchmark suite, notable because this is heavily used across core (Brian White) [#1571](https://github.com/nodejs/node/pull/1571)
- New `process.geteuid()`, `process.seteuid(id)`, `process.getegid()` and `process.setegid(id)` methods allow you to get and set effective UID and GID of the process (Evan Lucas) [#1536](https://github.com/nodejs/node/pull/1536) * New `process.geteuid()`, `process.seteuid(id)`, `process.getegid()` and `process.setegid(id)` methods allow you to get and set effective UID and GID of the process (Evan Lucas) [#1536](https://github.com/nodejs/node/pull/1536)
* **repl**: * **repl**:
- REPL history can be persisted across sessions if the `NODE_REPL_HISTORY_FILE` environment variable is set to a user accessible file, `NODE_REPL_HISTORY_SIZE` can set the maximum history size and defaults to `1000` (Chris Dickinson) [#1513](https://github.com/nodejs/node/pull/1513) * REPL history can be persisted across sessions if the `NODE_REPL_HISTORY_FILE` environment variable is set to a user accessible file, `NODE_REPL_HISTORY_SIZE` can set the maximum history size and defaults to `1000` (Chris Dickinson) [#1513](https://github.com/nodejs/node/pull/1513)
- The REPL can be placed in to one of three modes using the `NODE_REPL_MODE` environment variable: `sloppy`, `strict` or `magic` (default); the new `magic` mode will automatically run "strict mode only" statements in strict mode (Chris Dickinson) [#1513](https://github.com/nodejs/node/pull/1513) * The REPL can be placed in to one of three modes using the `NODE_REPL_MODE` environment variable: `sloppy`, `strict` or `magic` (default); the new `magic` mode will automatically run "strict mode only" statements in strict mode (Chris Dickinson) [#1513](https://github.com/nodejs/node/pull/1513)
* **smalloc**: the 'smalloc' module has been deprecated due to changes coming in V8 4.4 that will render it unusable * **smalloc**: the 'smalloc' module has been deprecated due to changes coming in V8 4.4 that will render it unusable
* **util**: add Promise, Map and Set inspection support (Christopher Monsanto) [#1471](https://github.com/nodejs/node/pull/1471) * **util**: add Promise, Map and Set inspection support (Christopher Monsanto) [#1471](https://github.com/nodejs/node/pull/1471)
* **V8**: upgrade to 4.2.77.18, see the [ChangeLog](https://chromium.googlesource.com/v8/v8/+/refs/heads/4.2.77/ChangeLog) for full details. Notable items: * **V8**: upgrade to 4.2.77.18, see the [ChangeLog](https://chromium.googlesource.com/v8/v8/+/refs/heads/4.2.77/ChangeLog) for full details. Notable items:
- Classes have moved out of staging; the `class` keyword is now usable in strict mode without flags * Classes have moved out of staging; the `class` keyword is now usable in strict mode without flags
- Object literal enhancements have moved out of staging; shorthand method and property syntax is now usable (`{ method() { }, property }`) * Object literal enhancements have moved out of staging; shorthand method and property syntax is now usable (`{ method() { }, property }`)
- Rest parameters (`function(...args) {}`) are implemented in staging behind the `--harmony-rest-parameters` flag * Rest parameters (`function(...args) {}`) are implemented in staging behind the `--harmony-rest-parameters` flag
- Computed property names (`{['foo'+'bar']:'bam'}`) are implemented in staging behind the `--harmony-computed-property-names` flag * Computed property names (`{['foo'+'bar']:'bam'}`) are implemented in staging behind the `--harmony-computed-property-names` flag
- Unicode escapes (`'\u{xxxx}'`) are implemented in staging behind the `--harmony_unicode` flag and the `--harmony_unicode_regexps` flag for use in regular expressions * Unicode escapes (`'\u{xxxx}'`) are implemented in staging behind the `--harmony_unicode` flag and the `--harmony_unicode_regexps` flag for use in regular expressions
* **Windows**: * **Windows**:
- Random process termination on Windows fixed (Fedor Indutny) [#1512](https://github.com/nodejs/node/issues/1512) / [#1563](https://github.com/nodejs/node/pull/1563) * Random process termination on Windows fixed (Fedor Indutny) [#1512](https://github.com/nodejs/node/issues/1512) / [#1563](https://github.com/nodejs/node/pull/1563)
- The delay-load hook introduced to fix issues with process naming (iojs.exe / node.exe) has been made opt-out for native add-ons. Native add-ons should include `'win_delay_load_hook': 'false'` in their binding.gyp to disable this feature if they experience problems . (Bert Belder) [#1433](https://github.com/nodejs/node/pull/1433) * The delay-load hook introduced to fix issues with process naming (iojs.exe / node.exe) has been made opt-out for native add-ons. Native add-ons should include `'win_delay_load_hook': 'false'` in their binding.gyp to disable this feature if they experience problems . (Bert Belder) [#1433](https://github.com/nodejs/node/pull/1433)
* **Governance**: * **Governance**:
- Rod Vagg (@rvagg) was added to the Technical Committee (TC) * Rod Vagg (@rvagg) was added to the Technical Committee (TC)
- Jeremiah Senkpiel (@Fishrock123) was added to the Technical Committee (TC) * Jeremiah Senkpiel (@Fishrock123) was added to the Technical Committee (TC)
### Known issues ### Known issues
@ -1642,9 +1642,9 @@ will be removed at a later point. (Roman Reiss) [#1363](https://github.com/nodej
* **fs**: corruption can be caused by `fs.writeFileSync()` and append-mode `fs.writeFile()` and `fs.writeFileSync()` under certain circumstances, reported in [#1058](https://github.com/nodejs/node/issues/1058), fixed in [#1063](https://github.com/nodejs/node/pull/1063) (Olov Lassus). * **fs**: corruption can be caused by `fs.writeFileSync()` and append-mode `fs.writeFile()` and `fs.writeFileSync()` under certain circumstances, reported in [#1058](https://github.com/nodejs/node/issues/1058), fixed in [#1063](https://github.com/nodejs/node/pull/1063) (Olov Lassus).
* **iojs**: an "internal modules" API has been introduced to allow core code to share JavaScript modules internally only without having to expose them as a public API, this feature is for core-only [#848](https://github.com/nodejs/node/pull/848) (Vladimir Kurchatkin). * **iojs**: an "internal modules" API has been introduced to allow core code to share JavaScript modules internally only without having to expose them as a public API, this feature is for core-only [#848](https://github.com/nodejs/node/pull/848) (Vladimir Kurchatkin).
* **timers**: two minor problems with timers have been fixed: * **timers**: two minor problems with timers have been fixed:
- `Timer#close()` is now properly idempotent [#1288](https://github.com/nodejs/node/issues/1288) (Petka Antonov). * `Timer#close()` is now properly idempotent [#1288](https://github.com/nodejs/node/issues/1288) (Petka Antonov).
- `setTimeout()` will only run the callback once now after an `unref()` during the callback [#1231](https://github.com/nodejs/node/pull/1231) (Roman Reiss). * `setTimeout()` will only run the callback once now after an `unref()` during the callback [#1231](https://github.com/nodejs/node/pull/1231) (Roman Reiss).
- NOTE: there are still other unresolved concerns with the timers code, such as [#1152](https://github.com/nodejs/node/pull/1152). * NOTE: there are still other unresolved concerns with the timers code, such as [#1152](https://github.com/nodejs/node/pull/1152).
* **Windows**: a "delay-load hook" has been added for compiled add-ons on Windows that should alleviate some of the problems that Windows users may be experiencing with add-ons in io.js [#1251](https://github.com/nodejs/node/pull/1251) (Bert Belder). * **Windows**: a "delay-load hook" has been added for compiled add-ons on Windows that should alleviate some of the problems that Windows users may be experiencing with add-ons in io.js [#1251](https://github.com/nodejs/node/pull/1251) (Bert Belder).
* **V8**: minor bug-fix upgrade for V8 to 4.1.0.27. * **V8**: minor bug-fix upgrade for V8 to 4.1.0.27.
* **npm**: upgrade npm to 2.7.4. See [npm CHANGELOG.md](https://github.com/npm/npm/blob/master/CHANGELOG.md#v274-2015-03-20) for details. Summary: * **npm**: upgrade npm to 2.7.4. See [npm CHANGELOG.md](https://github.com/npm/npm/blob/master/CHANGELOG.md#v274-2015-03-20) for details. Summary:
@ -2041,9 +2041,9 @@ will be removed at a later point. (Roman Reiss) [#1363](https://github.com/nodej
deprecation warning to include which `package.json` is using it. deprecation warning to include which `package.json` is using it.
([@othiym23](https://github.com/othiym23)) ([@othiym23](https://github.com/othiym23))
* Add new collaborators: * Add new collaborators:
- Robert Kowalski ([@robertkowalski](https://github.com/robertkowalski)) * Robert Kowalski ([@robertkowalski](https://github.com/robertkowalski))
- Christian Vaagland Tellnes ([@tellnes](https://github.com/tellnes)) * Christian Vaagland Tellnes ([@tellnes](https://github.com/tellnes))
- Brian White ([@mscdex](https://github.com/mscdex)) * Brian White ([@mscdex](https://github.com/mscdex))
### Known issues ### Known issues
@ -2212,34 +2212,34 @@ _Note: version **1.4.0** was tagged and built but not released. A libuv bug was
### Notable changes ### Notable changes
* **stream**: * **stream**:
- Simpler stream construction, see [readable-stream/issues#102](https://github.com/nodejs/readable-stream/issues/102) for details. This extends the streams base objects to make their constructors accept default implementation methods, reducing the boilerplate required to implement custom streams. An updated version of readable-stream will eventually be released to match this change in core. (@sonewman) * Simpler stream construction, see [readable-stream/issues#102](https://github.com/nodejs/readable-stream/issues/102) for details. This extends the streams base objects to make their constructors accept default implementation methods, reducing the boilerplate required to implement custom streams. An updated version of readable-stream will eventually be released to match this change in core. (@sonewman)
* **dns**: * **dns**:
- `lookup()` now supports an `'all'` boolean option, default to `false` but when turned on will cause the method to return an array of *all* resolved names for an address, see, [#744](https://github.com/nodejs/node/pull/744) (@silverwind) * `lookup()` now supports an `'all'` boolean option, default to `false` but when turned on will cause the method to return an array of *all* resolved names for an address, see, [#744](https://github.com/nodejs/node/pull/744) (@silverwind)
* **assert**: * **assert**:
- Remove `prototype` property comparison in `deepEqual()`, considered a bugfix, see [#636](https://github.com/nodejs/node/pull/636) (@vkurchatkin) * Remove `prototype` property comparison in `deepEqual()`, considered a bugfix, see [#636](https://github.com/nodejs/node/pull/636) (@vkurchatkin)
- Introduce a `deepStrictEqual()` method to mirror `deepEqual()` but performs strict equality checks on primitives, see [#639](https://github.com/nodejs/node/pull/639) (@vkurchatkin) * Introduce a `deepStrictEqual()` method to mirror `deepEqual()` but performs strict equality checks on primitives, see [#639](https://github.com/nodejs/node/pull/639) (@vkurchatkin)
* **tracing**: * **tracing**:
- Add [LTTng](http://lttng.org/) (Linux Trace Toolkit Next Generation) when compiled with the `--with-lttng` option. Trace points match those available for DTrace and ETW. [#702](https://github.com/nodejs/node/pull/702) (@thekemkid) * Add [LTTng](http://lttng.org/) (Linux Trace Toolkit Next Generation) when compiled with the `--with-lttng` option. Trace points match those available for DTrace and ETW. [#702](https://github.com/nodejs/node/pull/702) (@thekemkid)
* **docs**: * **docs**:
- Lots of doc updates, see individual commits * Lots of doc updates, see individual commits
- New **Errors** page discussing JavaScript errors, V8 specifics, and io.js specific error details. (@chrisdickinson) * New **Errors** page discussing JavaScript errors, V8 specifics, and io.js specific error details. (@chrisdickinson)
* **npm** upgrade to 2.5.1, short changelog: * **npm** upgrade to 2.5.1, short changelog:
- [npm/0e8d473](https://github.com/npm/npm/commit/0e8d4736a1cbdda41ae8eba8a02c7ff7ce80c2ff) [#7281](https://github.com/npm/npm/issues/7281) `npm-registry-mock@1.0.0`: Clean up API, set `connection: close`, which makes tests pass on io.js 1.1.x. * [npm/0e8d473](https://github.com/npm/npm/commit/0e8d4736a1cbdda41ae8eba8a02c7ff7ce80c2ff) [#7281](https://github.com/npm/npm/issues/7281) `npm-registry-mock@1.0.0`: Clean up API, set `connection: close`, which makes tests pass on io.js 1.1.x.
([@robertkowalski](https://github.com/robertkowalski)) ([@robertkowalski](https://github.com/robertkowalski))
- [npm/f9313a0](https://github.com/npm/npm/commit/f9313a066c9889a0ee898d8a35676e40b8101e7f) * [npm/f9313a0](https://github.com/npm/npm/commit/f9313a066c9889a0ee898d8a35676e40b8101e7f)
[#7226](https://github.com/npm/npm/issues/7226) Ensure that all request [#7226](https://github.com/npm/npm/issues/7226) Ensure that all request
settings are copied onto the agent. settings are copied onto the agent.
([@othiym23](https://github.com/othiym23)) ([@othiym23](https://github.com/othiym23))
- [npm/fec4c96](https://github.com/npm/npm/commit/fec4c967ee235030bf31393e8605e9e2811f4a39) * [npm/fec4c96](https://github.com/npm/npm/commit/fec4c967ee235030bf31393e8605e9e2811f4a39)
Allow `--no-proxy` to override `HTTP_PROXY` setting in environment. Allow `--no-proxy` to override `HTTP_PROXY` setting in environment.
([@othiym23](https://github.com/othiym23)) ([@othiym23](https://github.com/othiym23))
- [npm/9d61e96](https://github.com/npm/npm/commit/9d61e96fb1f48687a85c211e4e0cd44c7f95a38e) * [npm/9d61e96](https://github.com/npm/npm/commit/9d61e96fb1f48687a85c211e4e0cd44c7f95a38e)
`npm outdated --long` now includes a column showing the type of dependency. `npm outdated --long` now includes a column showing the type of dependency.
([@watilde](https://github.com/watilde)) ([@watilde](https://github.com/watilde))
* **libuv** upgrade to 1.4.0, see [libuv ChangeLog](https://github.com/libuv/libuv/blob/v1.x/ChangeLog) * **libuv** upgrade to 1.4.0, see [libuv ChangeLog](https://github.com/libuv/libuv/blob/v1.x/ChangeLog)
* Add new collaborators: * Add new collaborators:
- Aleksey Smolenchuk (@lxe) * Aleksey Smolenchuk (@lxe)
- Shigeki Ohtsu (@shigeki) * Shigeki Ohtsu (@shigeki)
### Known issues ### Known issues
@ -2302,22 +2302,22 @@ _Note: version **1.4.0** was tagged and built but not released. A libuv bug was
* crypto: ~30% speedup on hashing functions. * crypto: ~30% speedup on hashing functions.
* crypto: added privateEncrypt/publicDecrypt functions. * crypto: added privateEncrypt/publicDecrypt functions.
* errors * errors
- better formatting via util.inspect * better formatting via util.inspect
- more descriptive errors from fs. This necessitated a `NODE_MODULE_VERSION` bump. * more descriptive errors from fs. This necessitated a `NODE_MODULE_VERSION` bump.
- more descriptive errors from http.setHeader * more descriptive errors from http.setHeader
* dep updates: * dep updates:
- npm: upgrade to 2.4.1 * npm: upgrade to 2.4.1
- http-parser: rollback to 2.3.0 * http-parser: rollback to 2.3.0
- libuv: update to 1.3.0 * libuv: update to 1.3.0
- v8: update to 4.1.0.14 * v8: update to 4.1.0.14
* http.request: inherited properties on options are now respected * http.request: inherited properties on options are now respected
* add iterable interface to buffers (`for (let byte of buffer.values()) { }`) * add iterable interface to buffers (`for (let byte of buffer.values()) { }`)
* fs: fix fd leak on `fs.createReadStream`. See 497fd72 for details. * fs: fix fd leak on `fs.createReadStream`. See 497fd72 for details.
* installer: on Windows, emit WM_SETTINGCHANGE after install to make other running * installer: on Windows, emit WM_SETTINGCHANGE after install to make other running
processes aware of the PATH changes. processes aware of the PATH changes.
* Added new collaborators: * Added new collaborators:
- Vladimir Kurchatkin (@vkurchatkin) * Vladimir Kurchatkin (@vkurchatkin)
- Micleușanu Nicu (@micnic) * Micleușanu Nicu (@micnic)
### Known issues ### Known issues
@ -2406,11 +2406,11 @@ _Note: version **1.4.0** was tagged and built but not released. A libuv bug was
* 'punycode' core module bumped from stability level 2-Unstable, * 'punycode' core module bumped from stability level 2-Unstable,
to 3-Stable to 3-Stable
* Added new collaborators: * Added new collaborators:
- Thorsten Lorenz (@thlorenz) * Thorsten Lorenz (@thlorenz)
- Stephen Belanger (@qard) * Stephen Belanger (@qard)
- Jeremiah Senkpiel (@fishrock123) * Jeremiah Senkpiel (@fishrock123)
- Evan Lucas (@evanlucas) * Evan Lucas (@evanlucas)
- Brendan Ashworth (@brendanashworth) * Brendan Ashworth (@brendanashworth)
### Commits ### Commits
@ -2565,140 +2565,140 @@ repository and therefore can be seen as an extension to v0.11.
### General ### General
- The V8 JavaScript engine bundled with io.js was upgraded dramatically, from version 3.14.5.9 in Node.js v0.10.35 and 3.26.33 in Node.js v0.11.14 to 3.31.74.1 for io.js v1.0.0. This brings along many fixes and performance improvements, as well as additional support for new ES6 language features! For more information on this, check out [the io.js ES6 page](https://iojs.org/es6.html). * The V8 JavaScript engine bundled with io.js was upgraded dramatically, from version 3.14.5.9 in Node.js v0.10.35 and 3.26.33 in Node.js v0.11.14 to 3.31.74.1 for io.js v1.0.0. This brings along many fixes and performance improvements, as well as additional support for new ES6 language features! For more information on this, check out [the io.js ES6 page](https://iojs.org/es6.html).
- Other bundled technologies were upgraded: * Other bundled technologies were upgraded:
- c-ares: 1.9.0-DEV to 1.10.0-DEV * c-ares: 1.9.0-DEV to 1.10.0-DEV
- http_parser: 1.0 to 2.3 * http_parser: 1.0 to 2.3
- libuv: 0.10.30 to 1.2.0 * libuv: 0.10.30 to 1.2.0
- npm: 1.4.28 to 2.1.18 * npm: 1.4.28 to 2.1.18
- openssl: 1.0.1j to 1.0.1k * openssl: 1.0.1j to 1.0.1k
- punycode: 1.2.0 to 1.3.2. * punycode: 1.2.0 to 1.3.2.
- Performance and stability improvements on all platforms. * Performance and stability improvements on all platforms.
### buffer ### buffer
https://iojs.org/api/buffer.html https://iojs.org/api/buffer.html
- Added `buf.writeUIntLE`, `buf.writeUIntBE`, `buf.writeIntLE`, `buf.writeIntBE`, `buf.readUIntLE`, `buf.readUIntBE`, `buf.readIntLE` and `buf.readIntBE` methods that read and write value up to 6 bytes. * Added `buf.writeUIntLE`, `buf.writeUIntBE`, `buf.writeIntLE`, `buf.writeIntBE`, `buf.readUIntLE`, `buf.readUIntBE`, `buf.readIntLE` and `buf.readIntBE` methods that read and write value up to 6 bytes.
- Added `Buffer.compare()` which does a `memcmp()` on two Buffer instances. Instances themselves also have a `compare()`. * Added `Buffer.compare()` which does a `memcmp()` on two Buffer instances. Instances themselves also have a `compare()`.
- Added `buffer.equals()` that checks equality of Buffers by their contents. * Added `buffer.equals()` that checks equality of Buffers by their contents.
- Added `new Buffer(otherBuffer)` constructor. * Added `new Buffer(otherBuffer)` constructor.
- Tweaked `SlowBuffer`'s semantics. * Tweaked `SlowBuffer`'s semantics.
- Updated the output of `buffer.toJSON()` to not be the same as an array. Instead it is an object specifically tagged as a buffer, which can be recovered by passing it to (a new overload of) the `Buffer` constructor. * Updated the output of `buffer.toJSON()` to not be the same as an array. Instead it is an object specifically tagged as a buffer, which can be recovered by passing it to (a new overload of) the `Buffer` constructor.
### child_process ### child_process
https://iojs.org/api/child_process.html https://iojs.org/api/child_process.html
- Added a `shell` option to `child_process.exec`. * Added a `shell` option to `child_process.exec`.
- Added synchronous counterparts for the child process functions: `child_process.spawnSync`, `child_process.execSync`, and `child_process.execFileSync`. * Added synchronous counterparts for the child process functions: `child_process.spawnSync`, `child_process.execSync`, and `child_process.execFileSync`.
- Added the path to any `ENOENT` errors, for easier debugging. * Added the path to any `ENOENT` errors, for easier debugging.
### console ### console
https://iojs.org/api/console.html https://iojs.org/api/console.html
- Added an `options` parameter to `console.dir`. * Added an `options` parameter to `console.dir`.
### cluster ### cluster
https://iojs.org/api/cluster.html https://iojs.org/api/cluster.html
- Updated `cluster` to use round-robin load balancing by default on non-Windows platforms. The scheduling policy is configurable however. * Updated `cluster` to use round-robin load balancing by default on non-Windows platforms. The scheduling policy is configurable however.
- `--debug` has been made cluster-aware. * `--debug` has been made cluster-aware.
- Many bug fixes. * Many bug fixes.
### crypto ### crypto
https://iojs.org/api/crypto.html https://iojs.org/api/crypto.html
- Added support for custom generator values to `DiffieHellman` (defaulting to 2 for backwards compatibility). * Added support for custom generator values to `DiffieHellman` (defaulting to 2 for backwards compatibility).
- Added support for custom pbkdf2 digest methods. * Added support for custom pbkdf2 digest methods.
- Added support for elliptic curve-based Diffie-Hellman. * Added support for elliptic curve-based Diffie-Hellman.
- Added support for loading and setting the engine for some/all OpenSSL functions. * Added support for loading and setting the engine for some/all OpenSSL functions.
- Added support for passing in a passphrase for decrypting the signing key to `Sign.sign()`. * Added support for passing in a passphrase for decrypting the signing key to `Sign.sign()`.
- Added support for private key passphrase in every method that accepts it. * Added support for private key passphrase in every method that accepts it.
- Added support for RSA public/private encryption/decryption functionality. * Added support for RSA public/private encryption/decryption functionality.
- Added support for setting and getting of authentication tags and setting additional authentication data when using ciphers such as AES-GCM. * Added support for setting and getting of authentication tags and setting additional authentication data when using ciphers such as AES-GCM.
### dgram ### dgram
https://iojs.org/api/dgram.html https://iojs.org/api/dgram.html
- Added support for receiving empty UDP packets. * Added support for receiving empty UDP packets.
### dns ### dns
https://iojs.org/api/dns.html https://iojs.org/api/dns.html
- Added `dns.resolveSoa`, `dns.getServers`, and `dns.setServers` methods. * Added `dns.resolveSoa`, `dns.getServers`, and `dns.setServers` methods.
- Added `hostname` on error messages when available. * Added `hostname` on error messages when available.
- Improved error handling consistency. * Improved error handling consistency.
### events ### events
https://iojs.org/api/events.html https://iojs.org/api/events.html
- Added chaining support to `EventEmitter.setMaxListeners`. * Added chaining support to `EventEmitter.setMaxListeners`.
- Updated `require('events')` to return the `EventEmitter` constructor, allowing the module to be used like `var EventEmitter = require('events')` instead of `var EventEmitter = require('events').EventEmitter`. * Updated `require('events')` to return the `EventEmitter` constructor, allowing the module to be used like `var EventEmitter = require('events')` instead of `var EventEmitter = require('events').EventEmitter`.
### fs ### fs
https://iojs.org/api/fs.html https://iojs.org/api/fs.html
- Added `fs.access`, and deprecated `fs.exists`. Please read the documentation carefully. * Added `fs.access`, and deprecated `fs.exists`. Please read the documentation carefully.
- Added more informative errors and method call site details when the `NODE_DEBUG` environment is set to ease debugging. * Added more informative errors and method call site details when the `NODE_DEBUG` environment is set to ease debugging.
- Added option to `fs.watch` for recursive sub-directory support (OS X only). * Added option to `fs.watch` for recursive sub-directory support (OS X only).
- Fixed missing callbacks errors just being printed instead of thrown. * Fixed missing callbacks errors just being printed instead of thrown.
### http ### http
https://iojs.org/api/http.html https://iojs.org/api/http.html
- Added support for `response.write` and `response.end` to receive a callback to know when the operation completes. * Added support for `response.write` and `response.end` to receive a callback to know when the operation completes.
- Added support for 308 status code (see RFC 7238). * Added support for 308 status code (see RFC 7238).
- Added `http.METHODS` array, listing the HTTP methods supported by the parser. * Added `http.METHODS` array, listing the HTTP methods supported by the parser.
- Added `request.flush` method. * Added `request.flush` method.
- Added `response.getHeader('header')` method that may be used before headers are flushed. * Added `response.getHeader('header')` method that may be used before headers are flushed.
- Added `response.statusMessage` property. * Added `response.statusMessage` property.
- Added Client Keep-Alive behavior. Set `keepAlive:true` in request options to reuse connections indefinitely. * Added Client Keep-Alive behavior. Set `keepAlive:true` in request options to reuse connections indefinitely.
- Added `rawHeaders` and `rawTrailers` members on incoming message. * Added `rawHeaders` and `rawTrailers` members on incoming message.
- Removed default chunked encoding on `DELETE` and `OPTIONS`. * Removed default chunked encoding on `DELETE` and `OPTIONS`.
### net ### net
https://iojs.org/api/net.html https://iojs.org/api/net.html
- Changed `net.Server.listen` such that, when the bind address is omitted, IPv6 is tried first, and IPv4 is used as a fallback. * Changed `net.Server.listen` such that, when the bind address is omitted, IPv6 is tried first, and IPv4 is used as a fallback.
### os ### os
https://iojs.org/api/os.html https://iojs.org/api/os.html
- Added MAC addresses, netmasks and scope IDs for IPv6 addresses to `os.networkInterfaces` method output. * Added MAC addresses, netmasks and scope IDs for IPv6 addresses to `os.networkInterfaces` method output.
- Updated `os.tmpdir` on Windows to use the `%SystemRoot%` or `%WINDIR%` environment variables instead of the hard-coded value of `c:\windows` when determining the temporary directory location. * Updated `os.tmpdir` on Windows to use the `%SystemRoot%` or `%WINDIR%` environment variables instead of the hard-coded value of `c:\windows` when determining the temporary directory location.
### path ### path
https://iojs.org/api/path.html https://iojs.org/api/path.html
- Added `path.isAbsolute` and `path.parse` methods. * Added `path.isAbsolute` and `path.parse` methods.
- Added `path.win32` and `path.posix` objects that contain platform-specific versions of the various `path` functions. * Added `path.win32` and `path.posix` objects that contain platform-specific versions of the various `path` functions.
- Improved `path.join` performance. * Improved `path.join` performance.
### process ### process
https://iojs.org/api/process.html https://iojs.org/api/process.html
- Added `beforeExit` event. * Added `beforeExit` event.
- Added `process.mainModule` and `process.exitCode`. * Added `process.mainModule` and `process.exitCode`.
### querystring ### querystring
https://iojs.org/api/querystring.html https://iojs.org/api/querystring.html
- Added the ability to pass custom versions of `encodeURIComponent` and `decodeURIComponent` when stringifying or parsing a querystring. * Added the ability to pass custom versions of `encodeURIComponent` and `decodeURIComponent` when stringifying or parsing a querystring.
- Fixed several issues with the formatting of query strings in edge cases. * Fixed several issues with the formatting of query strings in edge cases.
### smalloc ### smalloc
@ -2750,47 +2750,47 @@ For a detailed overview of how streams3 interact, [see this diagram](https://clo
https://iojs.org/api/timers.html https://iojs.org/api/timers.html
- Removed `process.maxTickDepth`, allowing `process.nextTick` to be used recursively without limit. * Removed `process.maxTickDepth`, allowing `process.nextTick` to be used recursively without limit.
- Updated `setImmediate` to process the full queue each turn of the event loop, instead of one per queue. * Updated `setImmediate` to process the full queue each turn of the event loop, instead of one per queue.
### tls ### tls
https://iojs.org/api/tls.html https://iojs.org/api/tls.html
- Added `detailed` boolean flag to `getPeerCertificate` to return detailed certificate information (with raw DER bytes). * Added `detailed` boolean flag to `getPeerCertificate` to return detailed certificate information (with raw DER bytes).
- Added `renegotiate(options, callback)` method for session renegotiation. * Added `renegotiate(options, callback)` method for session renegotiation.
- Added `setMaxSendFragment` method for varying TLS fragment size. * Added `setMaxSendFragment` method for varying TLS fragment size.
- Added a `dhparam` option for DH ciphers. * Added a `dhparam` option for DH ciphers.
- Added a `ticketKeys` option for TLS ticket AES encryption keys setup. * Added a `ticketKeys` option for TLS ticket AES encryption keys setup.
- Added async OCSP-stapling callback. * Added async OCSP-stapling callback.
- Added async session storage events. * Added async session storage events.
- Added async SNI callback. * Added async SNI callback.
- Added multi-key server support (for example, ECDSA+RSA server). * Added multi-key server support (for example, ECDSA+RSA server).
- Added optional callback to `checkServerIdentity` for manual certificate validation in userland. * Added optional callback to `checkServerIdentity` for manual certificate validation in userland.
- Added support for ECDSA/ECDHE cipher. * Added support for ECDSA/ECDHE cipher.
- Implemented TLS streams in C++, boosting their performance. * Implemented TLS streams in C++, boosting their performance.
- Moved `createCredentials` to `tls` and renamed it to `createSecureContext`. * Moved `createCredentials` to `tls` and renamed it to `createSecureContext`.
- Removed SSLv2 and SSLv3 support. * Removed SSLv2 and SSLv3 support.
### url ### url
https://iojs.org/api/url.html https://iojs.org/api/url.html
- Improved escaping of certain characters. * Improved escaping of certain characters.
- Improved parsing speed. * Improved parsing speed.
### util ### util
https://iojs.org/api/util.html https://iojs.org/api/util.html
- Added `util.debuglog`. * Added `util.debuglog`.
- Added a plethora of new type-testing methods. See [the docs](https://iojs.org/api/util.html). * Added a plethora of new type-testing methods. See [the docs](https://iojs.org/api/util.html).
- Updated `util.format` to receive several changes: * Updated `util.format` to receive several changes:
- `-0` is now displayed as such, instead of as `0`. * `-0` is now displayed as such, instead of as `0`.
- Anything that is `instanceof Error` is now formatted as an error. * Anything that is `instanceof Error` is now formatted as an error.
- Circular references in JavaScript objects are now handled for the `%j` specifier. * Circular references in JavaScript objects are now handled for the `%j` specifier.
- Custom `inspect` functions are now allowed to return an object. * Custom `inspect` functions are now allowed to return an object.
- Custom `inspect` functions now receive any arguments passed to `util.inspect`. * Custom `inspect` functions now receive any arguments passed to `util.inspect`.
## v8 ## v8
@ -2804,11 +2804,11 @@ https://iojs.org/api/vm.html
The `vm` module has been rewritten to work better, based on the excellent [Contextify](https://github.com/brianmcd/contextify) native module. All of the functionality of Contextify is now in core, with improvements! The `vm` module has been rewritten to work better, based on the excellent [Contextify](https://github.com/brianmcd/contextify) native module. All of the functionality of Contextify is now in core, with improvements!
- Added `vm.isContext(object)` method to determine whether `object` has been contextified. * Added `vm.isContext(object)` method to determine whether `object` has been contextified.
- Added `vm.runInDebugContext(code)` method to compile and execute `code` inside the V8 debug context. * Added `vm.runInDebugContext(code)` method to compile and execute `code` inside the V8 debug context.
- Updated `vm.createContext(sandbox)` to "contextify" the sandbox, making it suitable for use as a global for `vm` scripts, and then return it. It no longer creates a separate context object. * Updated `vm.createContext(sandbox)` to "contextify" the sandbox, making it suitable for use as a global for `vm` scripts, and then return it. It no longer creates a separate context object.
- Updated most `vm` and `vm.Script` methods to accept an `options` object, allowing you to configure a timeout for the script, the error display behavior, and sometimes the filename (for stack traces). * Updated most `vm` and `vm.Script` methods to accept an `options` object, allowing you to configure a timeout for the script, the error display behavior, and sometimes the filename (for stack traces).
- Updated the supplied sandbox object to be used directly as the global, remove error-prone copying of properties back and forth between the supplied sandbox object and the global that appears inside the scripts run by the `vm` module. * Updated the supplied sandbox object to be used directly as the global, remove error-prone copying of properties back and forth between the supplied sandbox object and the global that appears inside the scripts run by the `vm` module.
For more information, see the `vm` documentation linked above. For more information, see the `vm` documentation linked above.
@ -2816,9 +2816,9 @@ For more information, see the `vm` documentation linked above.
https://iojs.org/api/zlib.html https://iojs.org/api/zlib.html
- Added support for `zlib.flush` to specify a particular flush method (defaulting to `Z_FULL_FLUSH`). * Added support for `zlib.flush` to specify a particular flush method (defaulting to `Z_FULL_FLUSH`).
- Added support for `zlib.params` to dynamically update the compression level and strategy when deflating. * Added support for `zlib.params` to dynamically update the compression level and strategy when deflating.
- Added synchronous versions of the zlib methods. * Added synchronous versions of the zlib methods.
### C++ API Changes ### C++ API Changes
@ -2828,23 +2828,23 @@ In general it is recommended that you use [NAN](https://github.com/rvagg/nan) as
#### V8 highlights #### V8 highlights
- Exposed method signature has changed from `Handle<Value> Method(const Arguments& args)` to `void Method(const v8::FunctionCallbackInfo<Value>& args)` with the newly introduced `FunctionCallbackInfo` also taking the return value via `args.GetReturnValue().Set(value)` instead of `scope.Close(value)`, `Arguments` has been removed. * Exposed method signature has changed from `Handle<Value> Method(const Arguments& args)` to `void Method(const v8::FunctionCallbackInfo<Value>& args)` with the newly introduced `FunctionCallbackInfo` also taking the return value via `args.GetReturnValue().Set(value)` instead of `scope.Close(value)`, `Arguments` has been removed.
- Exposed setter signature has changed from `void Setter(Local<String> property, Local<Value> value, const v8::AccessorInfo& args)` `void Setter(Local<String> property, Local<Value> value, const v8::PropertyCallbackInfo<void>& args)`. * Exposed setter signature has changed from `void Setter(Local<String> property, Local<Value> value, const v8::AccessorInfo& args)` `void Setter(Local<String> property, Local<Value> value, const v8::PropertyCallbackInfo<void>& args)`.
- Exposed getter signature has changed from `void Getter(Local<String> property, Local<Value> value, const v8::AccessorInfo& args)` `void Getter(Local<String> property, Local<Value> value, const v8::PropertyCallbackInfo<Value>& args)`. * Exposed getter signature has changed from `void Getter(Local<String> property, Local<Value> value, const v8::AccessorInfo& args)` `void Getter(Local<String> property, Local<Value> value, const v8::PropertyCallbackInfo<Value>& args)`.
- Exposed property setter signature has changed from `Handle<Value> Setter(Local<String> property, Local<Value> value, const v8::AccessorInfo& args)` `void Setter(Local<String> property, Local<Value> value, const v8::PropertyCallbackInfo<Value>& args)`. * Exposed property setter signature has changed from `Handle<Value> Setter(Local<String> property, Local<Value> value, const v8::AccessorInfo& args)` `void Setter(Local<String> property, Local<Value> value, const v8::PropertyCallbackInfo<Value>& args)`.
- Exposed property getter signature has changed from `Handle<Value> Getter(Local<String> property, Local<Value> value, const v8::AccessorInfo& args)` `void Getter(Local<String> property, Local<Value> value, const v8::PropertyCallbackInfo<Value>& args)`. * Exposed property getter signature has changed from `Handle<Value> Getter(Local<String> property, Local<Value> value, const v8::AccessorInfo& args)` `void Getter(Local<String> property, Local<Value> value, const v8::PropertyCallbackInfo<Value>& args)`.
- Similar changes have been made to property enumerators, property deleters, property query, index getter, index setter, index enumerator, index deleter, index query. * Similar changes have been made to property enumerators, property deleters, property query, index getter, index setter, index enumerator, index deleter, index query.
- V8 objects instantiated in C++ now require an `Isolate*` argument as the first argument. In most cases it is OK to simply pass `v8::Isolate::GetCurrent()`, e.g. `Date::New(Isolate::GetCurrent(), time)`, or `String::NewFromUtf8(Isolate::GetCurrent(), "foobar")`. * V8 objects instantiated in C++ now require an `Isolate*` argument as the first argument. In most cases it is OK to simply pass `v8::Isolate::GetCurrent()`, e.g. `Date::New(Isolate::GetCurrent(), time)`, or `String::NewFromUtf8(Isolate::GetCurrent(), "foobar")`.
- `HandleScope scope` now requires an `Isolate*` argument, i.e. `HandleScope scope(isolate)`, in most cases `v8::Isolate::GetCurrent()` is OK. * `HandleScope scope` now requires an `Isolate*` argument, i.e. `HandleScope scope(isolate)`, in most cases `v8::Isolate::GetCurrent()` is OK.
- Similar changes have been made to `Locker` and `Unlocker`. * Similar changes have been made to `Locker` and `Unlocker`.
- V8 objects that need to "escape" a scope should be enclosed in a `EscapableHandleScope` rather than a `HandleScope` and should be returned with `scope.Escape(value)`. * V8 objects that need to "escape" a scope should be enclosed in a `EscapableHandleScope` rather than a `HandleScope` and should be returned with `scope.Escape(value)`.
- Exceptions are now thrown from isolates with `isolate->ThrowException(ExceptionObject)`. * Exceptions are now thrown from isolates with `isolate->ThrowException(ExceptionObject)`.
- `Context::GetCurrent()` must now be done on an isolate, e.g. `Isolate::GetCurrent()->GetCurrentContext()`. * `Context::GetCurrent()` must now be done on an isolate, e.g. `Isolate::GetCurrent()->GetCurrentContext()`.
- `String::NewSymbol()` has been removed, use plain strings instead. * `String::NewSymbol()` has been removed, use plain strings instead.
- `String::New()` has been removed, use `String::NewFromUtf8()` instead. * `String::New()` has been removed, use `String::NewFromUtf8()` instead.
- `Persistent` objects no longer inherit from `Handle` and cannot be instantiated with another object. Instead, the `Persistent` should simply be declared, e.g. `Persistent<Type> handle` and then have a `Local` assigned to it with `handle.Reset(isolate, value)`. To get a `Local` from a `Persistent` you must instantiate it as the argument, i.e. `Local::New(Isolate*, Persistent)`. * `Persistent` objects no longer inherit from `Handle` and cannot be instantiated with another object. Instead, the `Persistent` should simply be declared, e.g. `Persistent<Type> handle` and then have a `Local` assigned to it with `handle.Reset(isolate, value)`. To get a `Local` from a `Persistent` you must instantiate it as the argument, i.e. `Local::New(Isolate*, Persistent)`.
#### Node / io.js #### Node / io.js
- Updated `node::Buffer::New()` to return a `Handle` directly so you no longer need to fetch the `handle_` property. * Updated `node::Buffer::New()` to return a `Handle` directly so you no longer need to fetch the `handle_` property.
- Updated `node::MakeCallback()` to require an `Isolate*` as the first argument. Generally `Isolate::GetCurrent()` will be OK for this. * Updated `node::MakeCallback()` to require an `Isolate*` as the first argument. Generally `Isolate::GetCurrent()` will be OK for this.

View File

@ -106,8 +106,8 @@ This is a security release. All Node.js users should consult the security releas
* buffer: Zero-fill excess bytes in new `Buffer` objects created with `Buffer.concat()` while providing a `totalLength` parameter that exceeds the total length of the original `Buffer` objects being concatenated. (Сковорода Никита Андреевич) * buffer: Zero-fill excess bytes in new `Buffer` objects created with `Buffer.concat()` while providing a `totalLength` parameter that exceeds the total length of the original `Buffer` objects being concatenated. (Сковорода Никита Андреевич)
* http: * http:
- CVE-2016-5325 - Properly validate for allowable characters in the `reason` argument in `ServerResponse#writeHead()`. Fixes a possible response splitting attack vector. This introduces a new case where `throw` may occur when configuring HTTP responses, users should already be adopting try/catch here. Originally reported independently by Evan Lucas and Romain Gaucher. (Evan Lucas) * CVE-2016-5325 - Properly validate for allowable characters in the `reason` argument in `ServerResponse#writeHead()`. Fixes a possible response splitting attack vector. This introduces a new case where `throw` may occur when configuring HTTP responses, users should already be adopting try/catch here. Originally reported independently by Evan Lucas and Romain Gaucher. (Evan Lucas)
- Invalid status codes can no longer be sent. Limited to 3 digit numbers between 100 - 999. Lack of proper validation may also serve as a potential response splitting attack vector. Backported from v4.x. (Brian White) * Invalid status codes can no longer be sent. Limited to 3 digit numbers between 100 - 999. Lack of proper validation may also serve as a potential response splitting attack vector. Backported from v4.x. (Brian White)
* openssl: Upgrade to 1.0.1u, fixes a number of defects impacting Node.js: CVE-2016-6304 ("OCSP Status Request extension unbounded memory growth", high severity), CVE-2016-2183, CVE-2016-2183, CVE-2016-2178 and CVE-2016-6306. * openssl: Upgrade to 1.0.1u, fixes a number of defects impacting Node.js: CVE-2016-6304 ("OCSP Status Request extension unbounded memory growth", high severity), CVE-2016-2183, CVE-2016-2183, CVE-2016-2178 and CVE-2016-6306.
* tls: CVE-2016-7099 - Fix invalid wildcard certificate validation check whereby a TLS server may be able to serve an invalid wildcard certificate for its hostname due to improper validation of `*.` in the wildcard string. Originally reported by Alexander Minozhenko and James Bunton (Atlassian) (Ben Noordhuis) * tls: CVE-2016-7099 - Fix invalid wildcard certificate validation check whereby a TLS server may be able to serve an invalid wildcard certificate for its hostname due to improper validation of `*.` in the wildcard string. Originally reported by Alexander Minozhenko and James Bunton (Atlassian) (Ben Noordhuis)
@ -150,8 +150,8 @@ This is a security release. All Node.js users should consult the security releas
* npm: Correct erroneous version number in v2.15.1 code (Forrest L Norvell) https://github.com/nodejs/node/pull/5987 * npm: Correct erroneous version number in v2.15.1 code (Forrest L Norvell) https://github.com/nodejs/node/pull/5987
* openssl: Upgrade to v1.0.1t, addressing security vulnerabilities (Shigeki Ohtsu) https://github.com/nodejs/node/pull/6553 * openssl: Upgrade to v1.0.1t, addressing security vulnerabilities (Shigeki Ohtsu) https://github.com/nodejs/node/pull/6553
- Fixes CVE-2016-2107 "Padding oracle in AES-NI CBC MAC check" * Fixes CVE-2016-2107 "Padding oracle in AES-NI CBC MAC check"
- See https://nodejs.org/en/blog/vulnerability/openssl-may-2016/ for full details * See https://nodejs.org/en/blog/vulnerability/openssl-may-2016/ for full details
### Commits: ### Commits:
@ -186,13 +186,13 @@ This is a security release. All Node.js users should consult the security releas
* http_parser: Update to http-parser 1.2 to fix an unintentionally strict limitation of allowable header characters. (James M Snell) https://github.com/nodejs/node/pull/5242 * http_parser: Update to http-parser 1.2 to fix an unintentionally strict limitation of allowable header characters. (James M Snell) https://github.com/nodejs/node/pull/5242
* domains: * domains:
- Prevent an exit due to an exception being thrown rather than emitting an `'uncaughtException'` event on the `process` object when no error handler is set on the domain within which an error is thrown and an `'uncaughtException'` event listener is set on `process`. (Julien Gilli) https://github.com/nodejs/node/pull/3887 * Prevent an exit due to an exception being thrown rather than emitting an `'uncaughtException'` event on the `process` object when no error handler is set on the domain within which an error is thrown and an `'uncaughtException'` event listener is set on `process`. (Julien Gilli) https://github.com/nodejs/node/pull/3887
- Fix an issue where the process would not abort in the proper function call if an error is thrown within a domain with no error handler and `--abort-on-uncaught-exception` is used. (Julien Gilli) https://github.com/nodejs/node/pull/3887 * Fix an issue where the process would not abort in the proper function call if an error is thrown within a domain with no error handler and `--abort-on-uncaught-exception` is used. (Julien Gilli) https://github.com/nodejs/node/pull/3887
* openssl: Upgrade from 1.0.1r to 1.0.1s (Ben Noordhuis) https://github.com/nodejs/node/pull/5508 * openssl: Upgrade from 1.0.1r to 1.0.1s (Ben Noordhuis) https://github.com/nodejs/node/pull/5508
- Fix a double-free defect in parsing malformed DSA keys that may potentially be used for DoS or memory corruption attacks. It is likely to be very difficult to use this defect for a practical attack and is therefore considered low severity for Node.js users. More info is available at https://www.openssl.org/news/vulnerabilities.html#2016-0705 * Fix a double-free defect in parsing malformed DSA keys that may potentially be used for DoS or memory corruption attacks. It is likely to be very difficult to use this defect for a practical attack and is therefore considered low severity for Node.js users. More info is available at https://www.openssl.org/news/vulnerabilities.html#2016-0705
- Fix a defect that can cause memory corruption in certain very rare cases relating to the internal `BN_hex2bn()` and `BN_dec2bn()` functions. It is believed that Node.js is not invoking the code paths that use these functions so practical attacks via Node.js using this defect are _unlikely_ to be possible. More info is available at https://www.openssl.org/news/vulnerabilities.html#2016-0797 * Fix a defect that can cause memory corruption in certain very rare cases relating to the internal `BN_hex2bn()` and `BN_dec2bn()` functions. It is believed that Node.js is not invoking the code paths that use these functions so practical attacks via Node.js using this defect are _unlikely_ to be possible. More info is available at https://www.openssl.org/news/vulnerabilities.html#2016-0797
- Fix a defect that makes the CacheBleed Attack (https://ssrg.nicta.com.au/projects/TS/cachebleed/) possible. This defect enables attackers to execute side-channel attacks leading to the potential recovery of entire RSA private keys. It only affects the Intel Sandy Bridge (and possibly older) microarchitecture when using hyper-threading. Newer microarchitectures, including Haswell, are unaffected. More info is available at https://www.openssl.org/news/vulnerabilities.html#2016-0702 * Fix a defect that makes the CacheBleed Attack (https://ssrg.nicta.com.au/projects/TS/cachebleed/) possible. This defect enables attackers to execute side-channel attacks leading to the potential recovery of entire RSA private keys. It only affects the Intel Sandy Bridge (and possibly older) microarchitecture when using hyper-threading. Newer microarchitectures, including Haswell, are unaffected. More info is available at https://www.openssl.org/news/vulnerabilities.html#2016-0702
- Remove SSLv2 support, the `--enable-ssl2` command line argument will now produce an error. The DROWN Attack (https://drownattack.com/) creates a vulnerability where SSLv2 is enabled by a server, even if a client connection is not using SSLv2. The SSLv2 protocol is widely considered unacceptably broken and should not be supported. More information is available at https://www.openssl.org/news/vulnerabilities.html#2016-0800 * Remove SSLv2 support, the `--enable-ssl2` command line argument will now produce an error. The DROWN Attack (https://drownattack.com/) creates a vulnerability where SSLv2 is enabled by a server, even if a client connection is not using SSLv2. The SSLv2 protocol is widely considered unacceptably broken and should not be supported. More information is available at https://www.openssl.org/news/vulnerabilities.html#2016-0800
### Commits: ### Commits:
@ -215,11 +215,11 @@ This is an important security release. All Node.js users should consult the secu
* http-parser: upgrade from 1.0 to 1.1 * http-parser: upgrade from 1.0 to 1.1
* openssl: upgrade from 1.0.1q to 1.0.1r. To mitigate against the Logjam attack, TLS clients now reject Diffie-Hellman handshakes with parameters shorter than 1024-bits, up from the previous limit of 768-bits. * openssl: upgrade from 1.0.1q to 1.0.1r. To mitigate against the Logjam attack, TLS clients now reject Diffie-Hellman handshakes with parameters shorter than 1024-bits, up from the previous limit of 768-bits.
* src: * src:
- introduce new `--security-revert={cvenum}` command line flag for selective reversion of specific CVE fixes * introduce new `--security-revert={cvenum}` command line flag for selective reversion of specific CVE fixes
- allow the fix for CVE-2016-2216 to be selectively reverted using `--security-revert=CVE-2016-2216` * allow the fix for CVE-2016-2216 to be selectively reverted using `--security-revert=CVE-2016-2216`
* build: * build:
- xz compressed tar files will be made available from nodejs.org for v0.10 builds from v0.10.42 onward * xz compressed tar files will be made available from nodejs.org for v0.10 builds from v0.10.42 onward
- A headers.tar.gz file will be made available from nodejs.org for v0.10 builds from v0.10.42 onward, a future change to node-gyp will be required to make use of these * A headers.tar.gz file will be made available from nodejs.org for v0.10 builds from v0.10.42 onward, a future change to node-gyp will be required to make use of these
### Commits ### Commits
@ -432,7 +432,7 @@ https://github.com/nodejs/node/commit/ce82d6b8474bde7ac7df6d425fb88fb1bcba35bc
* openssl: to 1.0.1h (CVE-2014-0224) * openssl: to 1.0.1h (CVE-2014-0224)
* npm: upgrade to 1.4.14 * npm: upgrade to 1.4.14
* utf8: Prevent Node from sending invalid UTF-8 (Felix Geisendörfer) * utf8: Prevent Node from sending invalid UTF-8 (Felix Geisendörfer)
- *NOTE* this introduces a breaking change, previously you could construct * *NOTE* this introduces a breaking change, previously you could construct
invalid UTF-8 and invoke an error in a client that was expecting valid invalid UTF-8 and invoke an error in a client that was expecting valid
UTF-8, now unmatched surrogate pairs are replaced with the unknown UTF-8 UTF-8, now unmatched surrogate pairs are replaced with the unknown UTF-8
character. To restore the old functionality simply have NODE_INVALID_UTF8 character. To restore the old functionality simply have NODE_INVALID_UTF8
@ -573,7 +573,7 @@ https://github.com/nodejs/node/commit/e2da042844a830fafb8031f6c477eb4f96195210
https://github.com/nodejs/node/commit/d7234c8d50a1af73f60d2d3c0cc7eed17429a481 https://github.com/nodejs/node/commit/d7234c8d50a1af73f60d2d3c0cc7eed17429a481
* tls: fix sporadic hang and partial reads (Fedor Indutny) * tls: fix sporadic hang and partial reads (Fedor Indutny)
- fixes "npm ERR! cb() never called!" * fixes "npm ERR! cb() never called!"
<a id="0.10.19"></a> <a id="0.10.19"></a>
## 2013.09.24, Version 0.10.19 (Stable) ## 2013.09.24, Version 0.10.19 (Stable)

View File

@ -90,11 +90,11 @@ This is a security release. All Node.js users should consult the security releas
* buffer: Zero-fill excess bytes in new `Buffer` objects created with `Buffer.concat()` while providing a `totalLength` parameter that exceeds the total length of the original `Buffer` objects being concatenated. (Сковорода Никита Андреевич) * buffer: Zero-fill excess bytes in new `Buffer` objects created with `Buffer.concat()` while providing a `totalLength` parameter that exceeds the total length of the original `Buffer` objects being concatenated. (Сковорода Никита Андреевич)
* http: * http:
- CVE-2016-5325 - Properly validate for allowable characters in the `reason` argument in `ServerResponse#writeHead()`. Fixes a possible response splitting attack vector. This introduces a new case where `throw` may occur when configuring HTTP responses, users should already be adopting try/catch here. Originally reported independently by Evan Lucas and Romain Gaucher. (Evan Lucas) * CVE-2016-5325 - Properly validate for allowable characters in the `reason` argument in `ServerResponse#writeHead()`. Fixes a possible response splitting attack vector. This introduces a new case where `throw` may occur when configuring HTTP responses, users should already be adopting try/catch here. Originally reported independently by Evan Lucas and Romain Gaucher. (Evan Lucas)
- Invalid status codes can no longer be sent. Limited to 3 digit numbers between 100 - 999. Lack of proper validation may also serve as a potential response splitting attack vector. Backported from v4.x. (Brian White) * Invalid status codes can no longer be sent. Limited to 3 digit numbers between 100 - 999. Lack of proper validation may also serve as a potential response splitting attack vector. Backported from v4.x. (Brian White)
* openssl: * openssl:
- Upgrade to 1.0.1u, fixes a number of defects impacting Node.js: CVE-2016-6304 ("OCSP Status Request extension unbounded memory growth", high severity), CVE-2016-2183, CVE-2016-6303, CVE-2016-2178 and CVE-2016-6306. * Upgrade to 1.0.1u, fixes a number of defects impacting Node.js: CVE-2016-6304 ("OCSP Status Request extension unbounded memory growth", high severity), CVE-2016-2183, CVE-2016-6303, CVE-2016-2178 and CVE-2016-6306.
- Remove support for loading dynamic third-party engine modules. An attacker may be able to hide malicious code to be inserted into Node.js at runtime by masquerading as one of the dynamic engine modules. Originally reported by Ahmed Zaki (Skype). (Ben Noordhuis, Rod Vagg) * Remove support for loading dynamic third-party engine modules. An attacker may be able to hide malicious code to be inserted into Node.js at runtime by masquerading as one of the dynamic engine modules. Originally reported by Ahmed Zaki (Skype). (Ben Noordhuis, Rod Vagg)
* tls: CVE-2016-7099 - Fix invalid wildcard certificate validation check whereby a TLS server may be able to serve an invalid wildcard certificate for its hostname due to improper validation of `*.` in the wildcard string. Originally reported by Alexander Minozhenko and James Bunton (Atlassian). (Ben Noordhuis) * tls: CVE-2016-7099 - Fix invalid wildcard certificate validation check whereby a TLS server may be able to serve an invalid wildcard certificate for its hostname due to improper validation of `*.` in the wildcard string. Originally reported by Alexander Minozhenko and James Bunton (Atlassian). (Ben Noordhuis)
### Commits: ### Commits:
@ -139,9 +139,9 @@ This is a security release. All Node.js users should consult the security releas
* npm: Correct erroneous version number in v2.15.1 code (Forrest L Norvell) https://github.com/nodejs/node/pull/5988 * npm: Correct erroneous version number in v2.15.1 code (Forrest L Norvell) https://github.com/nodejs/node/pull/5988
* openssl: Upgrade to v1.0.1t, addressing security vulnerabilities (Shigeki Ohtsu) https://github.com/nodejs/node/pull/6553 * openssl: Upgrade to v1.0.1t, addressing security vulnerabilities (Shigeki Ohtsu) https://github.com/nodejs/node/pull/6553
- Fixes CVE-2016-2107 "Padding oracle in AES-NI CBC MAC check" * Fixes CVE-2016-2107 "Padding oracle in AES-NI CBC MAC check"
- Fixes CVE-2016-2105 "EVP_EncodeUpdate overflow" * Fixes CVE-2016-2105 "EVP_EncodeUpdate overflow"
- See https://nodejs.org/en/blog/vulnerability/openssl-may-2016/ for full details * See https://nodejs.org/en/blog/vulnerability/openssl-may-2016/ for full details
### Commits: ### Commits:
@ -192,12 +192,12 @@ Note that the upgrade to OpenSSL 1.0.1s in Node.js v0.12.11 removed internal SSL
* http_parser: Update to http-parser 2.3.2 to fix an unintentionally strict limitation of allowable header characters. (James M Snell) https://github.com/nodejs/node/pull/5241 * http_parser: Update to http-parser 2.3.2 to fix an unintentionally strict limitation of allowable header characters. (James M Snell) https://github.com/nodejs/node/pull/5241
* domains: * domains:
- Prevent an exit due to an exception being thrown rather than emitting an 'uncaughtException' event on the `process` object when no error handler is set on the domain within which an error is thrown and an 'uncaughtException' event listener is set on `process`. (Julien Gilli) https://github.com/nodejs/node/pull/3885 * Prevent an exit due to an exception being thrown rather than emitting an 'uncaughtException' event on the `process` object when no error handler is set on the domain within which an error is thrown and an 'uncaughtException' event listener is set on `process`. (Julien Gilli) https://github.com/nodejs/node/pull/3885
- Fix an issue where the process would not abort in the proper function call if an error is thrown within a domain with no error handler and `--abort-on-uncaught-exception` is used. (Julien Gilli) https://github.com/nodejs/node/pull/3885 * Fix an issue where the process would not abort in the proper function call if an error is thrown within a domain with no error handler and `--abort-on-uncaught-exception` is used. (Julien Gilli) https://github.com/nodejs/node/pull/3885
* openssl: Upgrade from 1.0.1r to 1.0.1s (Ben Noordhuis) https://github.com/nodejs/node/pull/5509 * openssl: Upgrade from 1.0.1r to 1.0.1s (Ben Noordhuis) https://github.com/nodejs/node/pull/5509
- Fix a double-free defect in parsing malformed DSA keys that may potentially be used for DoS or memory corruption attacks. It is likely to be very difficult to use this defect for a practical attack and is therefore considered low severity for Node.js users. More info is available at https://www.openssl.org/news/vulnerabilities.html#2016-0705 * Fix a double-free defect in parsing malformed DSA keys that may potentially be used for DoS or memory corruption attacks. It is likely to be very difficult to use this defect for a practical attack and is therefore considered low severity for Node.js users. More info is available at https://www.openssl.org/news/vulnerabilities.html#2016-0705
- Fix a defect that can cause memory corruption in certain very rare cases relating to the internal `BN_hex2bn()` and `BN_dec2bn()` functions. It is believed that Node.js is not invoking the code paths that use these functions so practical attacks via Node.js using this defect are _unlikely_ to be possible. More info is available at https://www.openssl.org/news/vulnerabilities.html#2016-0797 * Fix a defect that can cause memory corruption in certain very rare cases relating to the internal `BN_hex2bn()` and `BN_dec2bn()` functions. It is believed that Node.js is not invoking the code paths that use these functions so practical attacks via Node.js using this defect are _unlikely_ to be possible. More info is available at https://www.openssl.org/news/vulnerabilities.html#2016-0797
- Fix a defect that makes the CacheBleed Attack (https://ssrg.nicta.com.au/projects/TS/cachebleed/) possible. This defect enables attackers to execute side-channel attacks leading to the potential recovery of entire RSA private keys. It only affects the Intel Sandy Bridge (and possibly older) microarchitecture when using hyper-threading. Newer microarchitectures, including Haswell, are unaffected. More info is available at https://www.openssl.org/news/vulnerabilities.html#2016-0702 * Fix a defect that makes the CacheBleed Attack (https://ssrg.nicta.com.au/projects/TS/cachebleed/) possible. This defect enables attackers to execute side-channel attacks leading to the potential recovery of entire RSA private keys. It only affects the Intel Sandy Bridge (and possibly older) microarchitecture when using hyper-threading. Newer microarchitectures, including Haswell, are unaffected. More info is available at https://www.openssl.org/news/vulnerabilities.html#2016-0702
### Commits: ### Commits:
@ -227,11 +227,11 @@ This is an important security release. All Node.js users should consult the secu
* http-parser: upgrade from 2.3.0 to 2.3.1 * http-parser: upgrade from 2.3.0 to 2.3.1
* openssl: upgrade from 1.0.1q to 1.0.1r. To mitigate against the Logjam attack, TLS clients now reject Diffie-Hellman handshakes with parameters shorter than 1024-bits, up from the previous limit of 768-bits. * openssl: upgrade from 1.0.1q to 1.0.1r. To mitigate against the Logjam attack, TLS clients now reject Diffie-Hellman handshakes with parameters shorter than 1024-bits, up from the previous limit of 768-bits.
* src: * src:
- introduce new `--security-revert={cvenum}` command line flag for selective reversion of specific CVE fixes * introduce new `--security-revert={cvenum}` command line flag for selective reversion of specific CVE fixes
- allow the fix for CVE-2016-2216 to be selectively reverted using `--security-revert=CVE-2016-2216` * allow the fix for CVE-2016-2216 to be selectively reverted using `--security-revert=CVE-2016-2216`
* build: * build:
- xz compressed tar files will be made available from nodejs.org for v0.12 builds from v0.12.10 onward * xz compressed tar files will be made available from nodejs.org for v0.12 builds from v0.12.10 onward
- A headers.tar.gz file will be made available from nodejs.org for v0.12 builds from v0.12.10 onward, a future change to node-gyp will be required to make use of these * A headers.tar.gz file will be made available from nodejs.org for v0.12 builds from v0.12.10 onward, a future change to node-gyp will be required to make use of these
### Commits ### Commits

View File

@ -1016,9 +1016,9 @@ a missing CLI flag to adjust the max header size of the http parser.
### Notable Changes ### Notable Changes
* **cli**: * **cli**:
- add --max-http-header-size flag (cjihrig) [#24811](https://github.com/nodejs/node/pull/24811) * add --max-http-header-size flag (cjihrig) [#24811](https://github.com/nodejs/node/pull/24811)
* **http**: * **http**:
- add maxHeaderSize property (cjihrig) [#24860](https://github.com/nodejs/node/pull/24860) * add maxHeaderSize property (cjihrig) [#24860](https://github.com/nodejs/node/pull/24860)
### Commits ### Commits
@ -2211,10 +2211,10 @@ Fixes for the following CVEs are included in this release:
* Fix unintentional exposure of uninitialized memory in `Buffer.alloc()` (CVE-2018-7166) * Fix unintentional exposure of uninitialized memory in `Buffer.alloc()` (CVE-2018-7166)
* **deps**: * **deps**:
* Upgrade to OpenSSL 1.1.0i, fixing: * Upgrade to OpenSSL 1.1.0i, fixing:
- Client DoS due to large DH parameter (CVE-2018-0732) * Client DoS due to large DH parameter (CVE-2018-0732)
- ECDSA key extraction via local side-channel (CVE not assigned) * ECDSA key extraction via local side-channel (CVE not assigned)
* Upgrade V8 from 6.7 to 6.8 (Michaël Zasso) [#21079](https://github.com/nodejs/node/pull/21079) * Upgrade V8 from 6.7 to 6.8 (Michaël Zasso) [#21079](https://github.com/nodejs/node/pull/21079)
- Memory reduction and performance improvements, details at: https://v8project.blogspot.com/2018/06/v8-release-68.html * Memory reduction and performance improvements, details at: https://v8project.blogspot.com/2018/06/v8-release-68.html
* **http**: `http.get()` and `http.request()` (and `https` variants) can now accept three arguments to allow for a `URL` _and_ an `options` object (Sam Ruby) [#21616](https://github.com/nodejs/node/pull/21616) * **http**: `http.get()` and `http.request()` (and `https` variants) can now accept three arguments to allow for a `URL` _and_ an `options` object (Sam Ruby) [#21616](https://github.com/nodejs/node/pull/21616)
* Added new collaborators * Added new collaborators
* Sam Ruby (https://github.com/rubys) * Sam Ruby (https://github.com/rubys)
@ -2985,9 +2985,9 @@ Fixes for the following CVEs are included in this release:
### Notable Changes ### Notable Changes
* **deps**: * **deps**:
- update V8 to 6.7.288.43 (Michaël Zasso) [#19989](https://github.com/nodejs/node/pull/19989) * update V8 to 6.7.288.43 (Michaël Zasso) [#19989](https://github.com/nodejs/node/pull/19989)
* **stream**: * **stream**:
- ensure Stream.pipeline re-throws errors without callback (Blaine Bublitz) [#20437](https://github.com/nodejs/node/pull/20437) * ensure Stream.pipeline re-throws errors without callback (Blaine Bublitz) [#20437](https://github.com/nodejs/node/pull/20437)
### Commits ### Commits
@ -3090,15 +3090,15 @@ Fixes for the following CVEs are included in this release:
### Notable Changes ### Notable Changes
* **deps**: * **deps**:
- upgrade npm to 6.1.0 (Rebecca Turner) [#20190](https://github.com/nodejs/node/pull/20190) * upgrade npm to 6.1.0 (Rebecca Turner) [#20190](https://github.com/nodejs/node/pull/20190)
* **fs**: * **fs**:
- fix reads with pos \> 4GB (Mathias Buus) [#21003](https://github.com/nodejs/node/pull/21003) * fix reads with pos \> 4GB (Mathias Buus) [#21003](https://github.com/nodejs/node/pull/21003)
* **net**: * **net**:
- new option to allow IPC servers to be readable and writable by all users (Bartosz Sosnowski) [#19472](https://github.com/nodejs/node/pull/19472) * new option to allow IPC servers to be readable and writable by all users (Bartosz Sosnowski) [#19472](https://github.com/nodejs/node/pull/19472)
* **stream**: * **stream**:
- fix removeAllListeners() for Stream.Readable to work as expected when no arguments are passed (Kael Zhang) [#20924](https://github.com/nodejs/node/pull/20924) * fix removeAllListeners() for Stream.Readable to work as expected when no arguments are passed (Kael Zhang) [#20924](https://github.com/nodejs/node/pull/20924)
* **Added new collaborators** * **Added new collaborators**
- [jdlaton](https://github.com/jdalton) John-David Dalton * [jdlaton](https://github.com/jdalton) John-David Dalton
### Commits ### Commits
@ -3162,23 +3162,23 @@ This is a follow up release to fix two regressions that were introduced in v10.2
### Notable Changes ### Notable Changes
* **addons**: * **addons**:
- Fixed a memory leak for users of `AsyncResource` and N-API. (Michael Dawson) [#20668](https://github.com/nodejs/node/pull/20668) * Fixed a memory leak for users of `AsyncResource` and N-API. (Michael Dawson) [#20668](https://github.com/nodejs/node/pull/20668)
* **assert**: * **assert**:
- The `error` parameter of `assert.throws()` can be an object containing regular expressions now. (Ruben Bridgewater) [#20485](https://github.com/nodejs/node/pull/20485) * The `error` parameter of `assert.throws()` can be an object containing regular expressions now. (Ruben Bridgewater) [#20485](https://github.com/nodejs/node/pull/20485)
* **crypto**: * **crypto**:
- The `authTagLength` option has been made more flexible. (Tobias Nießen) [#20235](https://github.com/nodejs/node/pull/20235), [#20039](https://github.com/nodejs/node/pull/20039) * The `authTagLength` option has been made more flexible. (Tobias Nießen) [#20235](https://github.com/nodejs/node/pull/20235), [#20039](https://github.com/nodejs/node/pull/20039)
* **esm**: * **esm**:
- Builtin modules (e.g. `fs`) now provide named exports in ES6 modules. (Gus Caplan) [#20403](https://github.com/nodejs/node/pull/20403) * Builtin modules (e.g. `fs`) now provide named exports in ES6 modules. (Gus Caplan) [#20403](https://github.com/nodejs/node/pull/20403)
* **http**: * **http**:
- Handling of `close` and `aborted` events has been made more consistent. (Robert Nagy) [#20075](https://github.com/nodejs/node/pull/20075), [#20611](https://github.com/nodejs/node/pull/20611) * Handling of `close` and `aborted` events has been made more consistent. (Robert Nagy) [#20075](https://github.com/nodejs/node/pull/20075), [#20611](https://github.com/nodejs/node/pull/20611)
* **module**: * **module**:
- add --preserve-symlinks-main (David Goldstein) [#19911](https://github.com/nodejs/node/pull/19911) * add --preserve-symlinks-main (David Goldstein) [#19911](https://github.com/nodejs/node/pull/19911)
* **timers**: * **timers**:
- `timeout.refresh()` has been added to the public API. (Jeremiah Senkpiel) [#20298](https://github.com/nodejs/node/pull/20298) * `timeout.refresh()` has been added to the public API. (Jeremiah Senkpiel) [#20298](https://github.com/nodejs/node/pull/20298)
* Embedder support: * Embedder support:
- Functions for creating V8 `Isolate` and `Context` objects with Node.js-specific behaviour have been added to the API. (Allen Yonghuang Wang) [#20639](https://github.com/nodejs/node/pull/20639) * Functions for creating V8 `Isolate` and `Context` objects with Node.js-specific behaviour have been added to the API. (Allen Yonghuang Wang) [#20639](https://github.com/nodejs/node/pull/20639)
- Node.js `Environment`s clean up resources before exiting now. (Anna Henningsen) [#19377](https://github.com/nodejs/node/pull/19377) * Node.js `Environment`s clean up resources before exiting now. (Anna Henningsen) [#19377](https://github.com/nodejs/node/pull/19377)
- Support for multi-threaded embedding has been improved. (Anna Henningsen) [#20542](https://github.com/nodejs/node/pull/20542), [#20539](https://github.com/nodejs/node/pull/20539), [#20541](https://github.com/nodejs/node/pull/20541) * Support for multi-threaded embedding has been improved. (Anna Henningsen) [#20542](https://github.com/nodejs/node/pull/20542), [#20539](https://github.com/nodejs/node/pull/20539), [#20541](https://github.com/nodejs/node/pull/20541)
### Commits ### Commits
@ -3396,15 +3396,15 @@ This is a follow up release to fix two regressions that were introduced in v10.2
### Notable Changes ### Notable Changes
* **console**: * **console**:
- make console.table() use colored inspect (TSUYUSATO Kitsune) [#20510](https://github.com/nodejs/node/pull/20510) * make console.table() use colored inspect (TSUYUSATO Kitsune) [#20510](https://github.com/nodejs/node/pull/20510)
* **fs**: * **fs**:
- move fs/promises to fs.promises (cjihrig) [#20504](https://github.com/nodejs/node/pull/20504) * move fs/promises to fs.promises (cjihrig) [#20504](https://github.com/nodejs/node/pull/20504)
* **http**: * **http**:
- added aborted property to request (Robert Nagy) [#20094](https://github.com/nodejs/node/pull/20094) * added aborted property to request (Robert Nagy) [#20094](https://github.com/nodejs/node/pull/20094)
* **n-api**: * **n-api**:
- initialize a module via a special symbol (Gabriel Schulhof) [#20161](https://github.com/nodejs/node/pull/20161) * initialize a module via a special symbol (Gabriel Schulhof) [#20161](https://github.com/nodejs/node/pull/20161)
* **src**: * **src**:
- add public API to expose the main V8 Platform (Allen Yonghuang Wang) [#20447](https://github.com/nodejs/node/pull/20447) * add public API to expose the main V8 Platform (Allen Yonghuang Wang) [#20447](https://github.com/nodejs/node/pull/20447)
### Commits ### Commits

View File

@ -1559,16 +1559,16 @@ A fix for the following CVE is included in this release:
### Notable Changes ### Notable Changes
* **cli**: * **cli**:
- add --max-http-header-size flag (cjihrig) [#24811](https://github.com/nodejs/node/pull/24811) * add --max-http-header-size flag (cjihrig) [#24811](https://github.com/nodejs/node/pull/24811)
* **crypto**: * **crypto**:
- always accept certificates as public keys (Tobias Nießen) [#24234](https://github.com/nodejs/node/pull/24234) * always accept certificates as public keys (Tobias Nießen) [#24234](https://github.com/nodejs/node/pull/24234)
- add key object API (Tobias Nießen) [#24234](https://github.com/nodejs/node/pull/24234) * add key object API (Tobias Nießen) [#24234](https://github.com/nodejs/node/pull/24234)
- update root certificates (Sam Roberts) [#25113](https://github.com/nodejs/node/pull/25113) * update root certificates (Sam Roberts) [#25113](https://github.com/nodejs/node/pull/25113)
* **deps**: * **deps**:
- upgrade to libuv 1.24.1 (cjihrig) [#25078](https://github.com/nodejs/node/pull/25078) * upgrade to libuv 1.24.1 (cjihrig) [#25078](https://github.com/nodejs/node/pull/25078)
- upgrade npm to 6.5.0 (Audrey Eschright) [#24734](https://github.com/nodejs/node/pull/24734) * upgrade npm to 6.5.0 (Audrey Eschright) [#24734](https://github.com/nodejs/node/pull/24734)
* **http**: * **http**:
- add maxHeaderSize property (cjihrig) [#24860](https://github.com/nodejs/node/pull/24860) * add maxHeaderSize property (cjihrig) [#24860](https://github.com/nodejs/node/pull/24860)
### Commits ### Commits

View File

@ -155,12 +155,12 @@ This release includes a security update to openssl that has been deemed low seve
### Notable Changes ### Notable Changes
* **crypto**: * **crypto**:
- update root certificates (Ben Noordhuis) [#13279](https://github.com/nodejs/node/pull/13279) * update root certificates (Ben Noordhuis) [#13279](https://github.com/nodejs/node/pull/13279)
- update root certificates (Ben Noordhuis) [#12402](https://github.com/nodejs/node/pull/12402) * update root certificates (Ben Noordhuis) [#12402](https://github.com/nodejs/node/pull/12402)
* **deps**: * **deps**:
- add support for more modern versions of INTL (Bruno Pagani) [#13040](https://github.com/nodejs/node/pull/13040) * add support for more modern versions of INTL (Bruno Pagani) [#13040](https://github.com/nodejs/node/pull/13040)
- upgrade openssl sources to 1.0.2m (Shigeki Ohtsu) [#16691](https://github.com/nodejs/node/pull/16691) * upgrade openssl sources to 1.0.2m (Shigeki Ohtsu) [#16691](https://github.com/nodejs/node/pull/16691)
- upgrade openssl sources to 1.0.2l (Daniel Bevenius) [#13233](https://github.com/nodejs/node/pull/13233) * upgrade openssl sources to 1.0.2l (Daniel Bevenius) [#13233](https://github.com/nodejs/node/pull/13233)
### Commits ### Commits
@ -220,7 +220,7 @@ This is a security release. All Node.js users should consult the security releas
### Notable Changes ### Notable Changes
* **zlib**: * **zlib**:
- CVE-2017-14919 - In zlib v1.2.9, a change was made that causes an error to be raised when a raw deflate stream is initialized with windowBits set to 8. On some versions this crashes Node and you cannot recover from it, while on some versions it throws an exception. Node.js will now gracefully set windowBits to 9 replicating the legacy behavior to avoid a DOS vector. [nodejs-private/node-private#95](https://github.com/nodejs-private/node-private/pull/95) * CVE-2017-14919 - In zlib v1.2.9, a change was made that causes an error to be raised when a raw deflate stream is initialized with windowBits set to 8. On some versions this crashes Node and you cannot recover from it, while on some versions it throws an exception. Node.js will now gracefully set windowBits to 9 replicating the legacy behavior to avoid a DOS vector. [nodejs-private/node-private#95](https://github.com/nodejs-private/node-private/pull/95)
### Commits ### Commits
@ -234,9 +234,9 @@ This is a security release. All Node.js users should consult the security releas
### Notable Changes ### Notable Changes
* **build**: * **build**:
- Disable V8 snapshots - The hashseed embedded in the snapshot is currently the same for all runs of the binary. This opens node up to collision attacks which could result in a Denial of Service. We have temporarily disabled snapshots until a more robust solution is found (Ali Ijaz Sheikh) * Disable V8 snapshots - The hashseed embedded in the snapshot is currently the same for all runs of the binary. This opens node up to collision attacks which could result in a Denial of Service. We have temporarily disabled snapshots until a more robust solution is found (Ali Ijaz Sheikh)
* **deps**: * **deps**:
- CVE-2017-1000381 - The c-ares function ares_parse_naptr_reply(), which is used for parsing NAPTR responses, could be triggered to read memory outside of the given input buffer if the passed in DNS response packet was crafted in a particular way. This patch checks that there is enough data for the required elements of an NAPTR record (2 int16, 3 bytes for string lengths) before processing a record. (David Drysdale) * CVE-2017-1000381 - The c-ares function ares_parse_naptr_reply(), which is used for parsing NAPTR responses, could be triggered to read memory outside of the given input buffer if the passed in DNS response packet was crafted in a particular way. This patch checks that there is enough data for the required elements of an NAPTR record (2 int16, 3 bytes for string lengths) before processing a record. (David Drysdale)
### Commits ### Commits
@ -251,11 +251,11 @@ This is a security release. All Node.js users should consult the security releas
### Notable Changes ### Notable Changes
* **module**: * **module**:
- The [module loading global fallback](https://nodejs.org/dist/latest-v4.x/docs/api/modules.html#modules_loading_from_the_global_folders) to the Node executable's directory now works correctly on Windows. (Richard Lau) [#9283](https://github.com/nodejs/node/pull/9283) * The [module loading global fallback](https://nodejs.org/dist/latest-v4.x/docs/api/modules.html#modules_loading_from_the_global_folders) to the Node executable's directory now works correctly on Windows. (Richard Lau) [#9283](https://github.com/nodejs/node/pull/9283)
* **src**: * **src**:
- fix base64 decoding in rare edgecase (Nikolai Vavilov) [#11995](https://github.com/nodejs/node/pull/11995) * fix base64 decoding in rare edgecase (Nikolai Vavilov) [#11995](https://github.com/nodejs/node/pull/11995)
* **tls**: * **tls**:
- fix rare segmentation faults when using TLS * fix rare segmentation faults when using TLS
* (Trevor Norris) [#11947](https://github.com/nodejs/node/pull/11947) * (Trevor Norris) [#11947](https://github.com/nodejs/node/pull/11947)
* (Ben Noordhuis) [#11898](https://github.com/nodejs/node/pull/11898) * (Ben Noordhuis) [#11898](https://github.com/nodejs/node/pull/11898)
* (jBarz) [#11776](https://github.com/nodejs/node/pull/11776) * (jBarz) [#11776](https://github.com/nodejs/node/pull/11776)
@ -288,9 +288,9 @@ that were present in zlib 1.2.8.
### Notable Changes ### Notable Changes
* **crypto**: * **crypto**:
- fix memory leak if certificate is revoked (Tom Atkinson) [#12089](https://github.com/nodejs/node/pull/12089) * fix memory leak if certificate is revoked (Tom Atkinson) [#12089](https://github.com/nodejs/node/pull/12089)
* **deps**: * **deps**:
- upgrade zlib to 1.2.11 (Sam Roberts) [#10980](https://github.com/nodejs/node/pull/10980) * upgrade zlib to 1.2.11 (Sam Roberts) [#10980](https://github.com/nodejs/node/pull/10980)
### Commits ### Commits
@ -309,9 +309,9 @@ and 1 commits which are updates to dependencies.
* **buffer**: The performance of `.toJSON()` is now up to 2859% faster on average. (Brian White) [#10895](https://github.com/nodejs/node/pull/10895) * **buffer**: The performance of `.toJSON()` is now up to 2859% faster on average. (Brian White) [#10895](https://github.com/nodejs/node/pull/10895)
* **IPC**: Batched writes have been enabled for process IPC on platforms that support Unix Domain Sockets. (Alexey Orlenko) [#10677](https://github.com/nodejs/node/pull/10677) * **IPC**: Batched writes have been enabled for process IPC on platforms that support Unix Domain Sockets. (Alexey Orlenko) [#10677](https://github.com/nodejs/node/pull/10677)
- Performance gains may be up to 40% for some workloads. * Performance gains may be up to 40% for some workloads.
* **http**: * **http**:
- Control characters are now always rejected when using `http.request()`. (Ben Noordhuis) [#8923](https://github.com/nodejs/node/pull/8923) * Control characters are now always rejected when using `http.request()`. (Ben Noordhuis) [#8923](https://github.com/nodejs/node/pull/8923)
* **node**: Heap statistics now support values larger than 4GB. (Ben Noordhuis) [#10186](https://github.com/nodejs/node/pull/10186) * **node**: Heap statistics now support values larger than 4GB. (Ben Noordhuis) [#10186](https://github.com/nodejs/node/pull/10186)
### Commits ### Commits
@ -866,7 +866,7 @@ The SEMVER-MINOR changes include:
Notable SEMVER-PATCH changes include: Notable SEMVER-PATCH changes include:
* **build**: * **build**:
- introduce the configure --shared option for embedders (sxa555) [#6994](https://github.com/nodejs/node/pull/6994) * introduce the configure --shared option for embedders (sxa555) [#6994](https://github.com/nodejs/node/pull/6994)
* **gtest**: the test reporter now outputs tap comments as yamlish (Johan Bergström) [#9262](https://github.com/nodejs/node/pull/9262) * **gtest**: the test reporter now outputs tap comments as yamlish (Johan Bergström) [#9262](https://github.com/nodejs/node/pull/9262)
* **src**: node no longer aborts when c-ares initialization fails (Ben Noordhuis) [#8710](https://github.com/nodejs/node/pull/8710) * **src**: node no longer aborts when c-ares initialization fails (Ben Noordhuis) [#8710](https://github.com/nodejs/node/pull/8710)
* **tls**: fix memory leak when writing data to TLSWrap instance during handshake (Fedor Indutny) [#9586](https://github.com/nodejs/node/pull/9586) * **tls**: fix memory leak when writing data to TLSWrap instance during handshake (Fedor Indutny) [#9586](https://github.com/nodejs/node/pull/9586)
@ -1242,9 +1242,9 @@ This is a security release. All Node.js users should consult the security releas
Semver Minor: Semver Minor:
* **openssl**: * **openssl**:
- Upgrade to 1.0.2i, fixes a number of defects impacting Node.js: CVE-2016-6304 ("OCSP Status Request extension unbounded memory growth", high severity), CVE-2016-2183, CVE-2016-6303, CVE-2016-2178 and CVE-2016-6306. (Shigeki Ohtsu) [#8714](https://github.com/nodejs/node/pull/8714) * Upgrade to 1.0.2i, fixes a number of defects impacting Node.js: CVE-2016-6304 ("OCSP Status Request extension unbounded memory growth", high severity), CVE-2016-2183, CVE-2016-6303, CVE-2016-2178 and CVE-2016-6306. (Shigeki Ohtsu) [#8714](https://github.com/nodejs/node/pull/8714)
- Upgrade to 1.0.2j, fixes a defect included in 1.0.2i resulting in a crash when using CRLs, CVE-2016-7052. (Shigeki Ohtsu) [#8786](https://github.com/nodejs/node/pull/8786) * Upgrade to 1.0.2j, fixes a defect included in 1.0.2i resulting in a crash when using CRLs, CVE-2016-7052. (Shigeki Ohtsu) [#8786](https://github.com/nodejs/node/pull/8786)
- Remove support for loading dynamic third-party engine modules. An attacker may be able to hide malicious code to be inserted into Node.js at runtime by masquerading as one of the dynamic engine modules. Originally reported by Ahmed Zaki (Skype). (Ben Noordhuis) [nodejs/node-private#70](https://github.com/nodejs/node-private/pull/70) * Remove support for loading dynamic third-party engine modules. An attacker may be able to hide malicious code to be inserted into Node.js at runtime by masquerading as one of the dynamic engine modules. Originally reported by Ahmed Zaki (Skype). (Ben Noordhuis) [nodejs/node-private#70](https://github.com/nodejs/node-private/pull/70)
* **http**: CVE-2016-5325 - Properly validate for allowable characters in the `reason` argument in `ServerResponse#writeHead()`. Fixes a possible response splitting attack vector. This introduces a new case where `throw` may occur when configuring HTTP responses, users should already be adopting try/catch here. Originally reported independently by Evan Lucas and Romain Gaucher. (Evan Lucas) [nodejs/node-private#46](https://github.com/nodejs/node-private/pull/46) * **http**: CVE-2016-5325 - Properly validate for allowable characters in the `reason` argument in `ServerResponse#writeHead()`. Fixes a possible response splitting attack vector. This introduces a new case where `throw` may occur when configuring HTTP responses, users should already be adopting try/catch here. Originally reported independently by Evan Lucas and Romain Gaucher. (Evan Lucas) [nodejs/node-private#46](https://github.com/nodejs/node-private/pull/46)
Semver Patch: Semver Patch:
@ -1576,15 +1576,15 @@ This LTS release comes with 89 commits. This includes 46 commits that are docs r
### Notable Changes ### Notable Changes
- **debugger**: * **debugger**:
- All properties of an array (aside from length) can now be printed in the repl (cjihrig) [#6448](https://github.com/nodejs/node/pull/6448) * All properties of an array (aside from length) can now be printed in the repl (cjihrig) [#6448](https://github.com/nodejs/node/pull/6448)
- **npm**: * **npm**:
- Upgrade npm to 2.15.8 (Rebecca Turner) [#7412](https://github.com/nodejs/node/pull/7412) * Upgrade npm to 2.15.8 (Rebecca Turner) [#7412](https://github.com/nodejs/node/pull/7412)
- **stream**: * **stream**:
- Fix for a bug that became more prevalent with the stream changes that landed in v4.4.5. (Anna Henningsen) [#7160](https://github.com/nodejs/node/pull/7160) * Fix for a bug that became more prevalent with the stream changes that landed in v4.4.5. (Anna Henningsen) [#7160](https://github.com/nodejs/node/pull/7160)
- **V8**: * **V8**:
- Fix for a bug in crankshaft that was causing crashes on arm64 (Myles Borins) [#7442](https://github.com/nodejs/node/pull/7442) * Fix for a bug in crankshaft that was causing crashes on arm64 (Myles Borins) [#7442](https://github.com/nodejs/node/pull/7442)
- Add missing classes to postmortem info such as JSMap and JSSet (evan.lucas) [#3792](https://github.com/nodejs/node/pull/3792) * Add missing classes to postmortem info such as JSMap and JSSet (evan.lucas) [#3792](https://github.com/nodejs/node/pull/3792)
### Commits ### Commits
@ -1698,14 +1698,14 @@ This release is specifically related to a Buffer overflow vulnerability discover
### Notable Changes ### Notable Changes
- **buffer**: * **buffer**:
- Buffer.indexOf now returns correct values for all UTF-16 input (Anna Henningsen) [#6511](https://github.com/nodejs/node/pull/6511) * Buffer.indexOf now returns correct values for all UTF-16 input (Anna Henningsen) [#6511](https://github.com/nodejs/node/pull/6511)
- **contextify**: * **contextify**:
- Context objects are now properly garbage collected, this solves a problem some individuals were experiencing with extreme memory growth (Ali Ijaz Sheikh) [#6871](https://github.com/nodejs/node/pull/6871) * Context objects are now properly garbage collected, this solves a problem some individuals were experiencing with extreme memory growth (Ali Ijaz Sheikh) [#6871](https://github.com/nodejs/node/pull/6871)
- **deps**: * **deps**:
- update npm to 2.15.5 (Rebecca Turner) [#6663](https://github.com/nodejs/node/pull/6663) * update npm to 2.15.5 (Rebecca Turner) [#6663](https://github.com/nodejs/node/pull/6663)
- **http**: * **http**:
- Invalid status codes can no longer be sent. Limited to 3 digit numbers between 100 - 999 (Brian White) [#6291](https://github.com/nodejs/node/pull/6291) * Invalid status codes can no longer be sent. Limited to 3 digit numbers between 100 - 999 (Brian White) [#6291](https://github.com/nodejs/node/pull/6291)
### Commits ### Commits
@ -1792,7 +1792,7 @@ This release is specifically related to a Buffer overflow vulnerability discover
* **deps**: * **deps**:
* update openssl to 1.0.2h. (Shigeki Ohtsu) [#6551](https://github.com/nodejs/node/pull/6551) * update openssl to 1.0.2h. (Shigeki Ohtsu) [#6551](https://github.com/nodejs/node/pull/6551)
- Please see our [blog post](https://nodejs.org/en/blog/vulnerability/openssl-may-2016/) for more info on the security contents of this release. * Please see our [blog post](https://nodejs.org/en/blog/vulnerability/openssl-may-2016/) for more info on the security contents of this release.
### Commits ### Commits
@ -1812,11 +1812,11 @@ This release is specifically related to a Buffer overflow vulnerability discover
### Notable Changes ### Notable Changes
* **deps**: * **deps**:
- Fix `--gdbjit` for embedders. Backported from v8 upstream. (Ben Noordhuis) [#5577](https://github.com/nodejs/node/pull/5577) * Fix `--gdbjit` for embedders. Backported from v8 upstream. (Ben Noordhuis) [#5577](https://github.com/nodejs/node/pull/5577)
* **etw**: * **etw**:
- Correctly display descriptors for ETW events 9 and 23 on the windows platform. (João Reis) [#5742](https://github.com/nodejs/node/pull/5742) * Correctly display descriptors for ETW events 9 and 23 on the windows platform. (João Reis) [#5742](https://github.com/nodejs/node/pull/5742)
* **querystring**: * **querystring**:
- Restore throw when attempting to stringify bad surrogate pair. (Brian White) [#5858](https://github.com/nodejs/node/pull/5858) * Restore throw when attempting to stringify bad surrogate pair. (Brian White) [#5858](https://github.com/nodejs/node/pull/5858)
### Commits ### Commits
@ -1879,13 +1879,13 @@ This release is specifically related to a Buffer overflow vulnerability discover
### Notable Changes ### Notable Changes
* **https**: * **https**:
- Under certain conditions ssl sockets may have been causing a memory leak when keepalive is enabled. This is no longer the case. (Alexander Penev) [#5713](https://github.com/nodejs/node/pull/5713) * Under certain conditions ssl sockets may have been causing a memory leak when keepalive is enabled. This is no longer the case. (Alexander Penev) [#5713](https://github.com/nodejs/node/pull/5713)
* **lib**: * **lib**:
- The way that we were internally passing arguments was causing a potential leak. By copying the arguments into an array we can avoid this. (Nathan Woltman) [#4361](https://github.com/nodejs/node/pull/4361) * The way that we were internally passing arguments was causing a potential leak. By copying the arguments into an array we can avoid this. (Nathan Woltman) [#4361](https://github.com/nodejs/node/pull/4361)
* **npm**: * **npm**:
- Upgrade to v2.15.1. Fixes a security flaw in the use of authentication tokens in HTTP requests that would allow an attacker to set up a server that could collect tokens from users of the command-line interface. Authentication tokens have previously been sent with every request made by the CLI for logged-in users, regardless of the destination of the request. This update fixes this by only including those tokens for requests made against the registry or registries used for the current install. (Forrest L Norvell) * Upgrade to v2.15.1. Fixes a security flaw in the use of authentication tokens in HTTP requests that would allow an attacker to set up a server that could collect tokens from users of the command-line interface. Authentication tokens have previously been sent with every request made by the CLI for logged-in users, regardless of the destination of the request. This update fixes this by only including those tokens for requests made against the registry or registries used for the current install. (Forrest L Norvell)
* **repl**: * **repl**:
- Previously if you were using the repl in strict mode the column number would be wrong in a stack trace. This is no longer an issue. (Prince J Wesley) [#5416](https://github.com/nodejs/node/pull/5416) * Previously if you were using the repl in strict mode the column number would be wrong in a stack trace. This is no longer an issue. (Prince J Wesley) [#5416](https://github.com/nodejs/node/pull/5416)
### Commits ### Commits
@ -1940,16 +1940,16 @@ and 7 which are benchmark related.
### Notable Changes ### Notable Changes
* **build**: * **build**:
- Updated Logos for the OSX + Windows installers * Updated Logos for the OSX + Windows installers
- (Rod Vagg) [#5401](https://github.com/nodejs/node/pull/5401) * (Rod Vagg) [#5401](https://github.com/nodejs/node/pull/5401)
- (Robert Jefe Lindstaedt) [#5531](https://github.com/nodejs/node/pull/5531) * (Robert Jefe Lindstaedt) [#5531](https://github.com/nodejs/node/pull/5531)
- New option to select your VS Version in the Windows installer * New option to select your VS Version in the Windows installer
- (julien.waechter) [#4645](https://github.com/nodejs/node/pull/4645) * (julien.waechter) [#4645](https://github.com/nodejs/node/pull/4645)
- Support Visual C++ Build Tools 2015 * Support Visual C++ Build Tools 2015
- (João Reis) [#5627](https://github.com/nodejs/node/pull/5627) * (João Reis) [#5627](https://github.com/nodejs/node/pull/5627)
* **tools**: * **tools**:
- Gyp now works on OSX without XCode * Gyp now works on OSX without XCode
- (Shigeki Ohtsu) [nodejs/node#1325](https://github.com/nodejs/node/pull/1325) * (Shigeki Ohtsu) [nodejs/node#1325](https://github.com/nodejs/node/pull/1325)
### Commits ### Commits
@ -2082,34 +2082,34 @@ This release also includes over 70 fixes to our docs and over 50 fixes to tests.
The SEMVER-MINOR changes include: The SEMVER-MINOR changes include:
* **deps**: * **deps**:
- An update to v8 that introduces a new flag --perf_basic_prof_only_functions (Ali Ijaz Sheikh) [#3609](https://github.com/nodejs/node/pull/3609) * An update to v8 that introduces a new flag --perf_basic_prof_only_functions (Ali Ijaz Sheikh) [#3609](https://github.com/nodejs/node/pull/3609)
* **http**: * **http**:
- A new feature in http(s) agent that catches errors on *keep alived* connections (José F. Romaniello) [#4482](https://github.com/nodejs/node/pull/4482) * A new feature in http(s) agent that catches errors on *keep alived* connections (José F. Romaniello) [#4482](https://github.com/nodejs/node/pull/4482)
* **src**: * **src**:
- Better support for Big-Endian systems (Bryon Leung) [#3410](https://github.com/nodejs/node/pull/3410) * Better support for Big-Endian systems (Bryon Leung) [#3410](https://github.com/nodejs/node/pull/3410)
* **tls**: * **tls**:
- A new feature that allows you to pass common SSL options to `tls.createSecurePair` (Коренберг Марк) [#2441](https://github.com/nodejs/node/pull/2441) * A new feature that allows you to pass common SSL options to `tls.createSecurePair` (Коренберг Марк) [#2441](https://github.com/nodejs/node/pull/2441)
* **tools**: * **tools**:
- a new flag `--prof-process` which will execute the tick processor on the provided isolate files (Matt Loring) [#4021](https://github.com/nodejs/node/pull/4021) * a new flag `--prof-process` which will execute the tick processor on the provided isolate files (Matt Loring) [#4021](https://github.com/nodejs/node/pull/4021)
Notable semver patch changes include: Notable semver patch changes include:
* **buld**: * **buld**:
- Support python path that includes spaces. This should be of particular interest to our Windows users who may have python living in `c:/Program Files` (Felix Becker) [#4841](https://github.com/nodejs/node/pull/4841) * Support python path that includes spaces. This should be of particular interest to our Windows users who may have python living in `c:/Program Files` (Felix Becker) [#4841](https://github.com/nodejs/node/pull/4841)
* **https**: * **https**:
- A potential fix for [#3692](https://github.com/nodejs/node/issues/3692) HTTP/HTTPS client requests throwing EPROTO (Fedor Indutny) [#4982](https://github.com/nodejs/node/pull/4982) * A potential fix for [#3692](https://github.com/nodejs/node/issues/3692) HTTP/HTTPS client requests throwing EPROTO (Fedor Indutny) [#4982](https://github.com/nodejs/node/pull/4982)
* **installer**: * **installer**:
- More readable profiling information from isolate tick logs (Matt Loring) [#3032](https://github.com/nodejs/node/pull/3032) * More readable profiling information from isolate tick logs (Matt Loring) [#3032](https://github.com/nodejs/node/pull/3032)
* **npm**: * **npm**:
- upgrade to npm 2.14.20 (Kat Marchán) [#5510](https://github.com/nodejs/node/pull/5510) * upgrade to npm 2.14.20 (Kat Marchán) [#5510](https://github.com/nodejs/node/pull/5510)
* **process**: * **process**:
- Add support for symbols in event emitters. Symbols didn't exist when it was written ¯\_(ツ)_/¯ (cjihrig) [#4798](https://github.com/nodejs/node/pull/4798) * Add support for symbols in event emitters. Symbols didn't exist when it was written ¯\_(ツ)_/¯ (cjihrig) [#4798](https://github.com/nodejs/node/pull/4798)
* **querystring**: * **querystring**:
- querystring.parse() is now 13-22% faster! (Brian White) [#4675](https://github.com/nodejs/node/pull/4675) * querystring.parse() is now 13-22% faster! (Brian White) [#4675](https://github.com/nodejs/node/pull/4675)
* **streams**: * **streams**:
- performance improvements for moving small buffers that shows a 5% throughput gain. IoT projects have been seen to be as much as 10% faster with this change! (Matteo Collina) [#4354](https://github.com/nodejs/node/pull/4354) * performance improvements for moving small buffers that shows a 5% throughput gain. IoT projects have been seen to be as much as 10% faster with this change! (Matteo Collina) [#4354](https://github.com/nodejs/node/pull/4354)
* **tools**: * **tools**:
- eslint has been updated to version 2.1.0 (Rich Trott) [#5214](https://github.com/nodejs/node/pull/5214) * eslint has been updated to version 2.1.0 (Rich Trott) [#5214](https://github.com/nodejs/node/pull/5214)
### Commits ### Commits
@ -2339,9 +2339,9 @@ This is a security release with only a single commit, an update to openssl due t
### Notable changes ### Notable changes
* **openssl**: Upgrade from 1.0.2f to 1.0.2g (Ben Noordhuis) [#5507](https://github.com/nodejs/node/pull/5507) * **openssl**: Upgrade from 1.0.2f to 1.0.2g (Ben Noordhuis) [#5507](https://github.com/nodejs/node/pull/5507)
- Fix a double-free defect in parsing malformed DSA keys that may potentially be used for DoS or memory corruption attacks. It is likely to be very difficult to use this defect for a practical attack and is therefore considered low severity for Node.js users. More info is available at [CVE-2016-0705](https://www.openssl.org/news/vulnerabilities.html#2016-0705). * Fix a double-free defect in parsing malformed DSA keys that may potentially be used for DoS or memory corruption attacks. It is likely to be very difficult to use this defect for a practical attack and is therefore considered low severity for Node.js users. More info is available at [CVE-2016-0705](https://www.openssl.org/news/vulnerabilities.html#2016-0705).
- Fix a defect that can cause memory corruption in certain very rare cases relating to the internal `BN_hex2bn()` and `BN_dec2bn()` functions. It is believed that Node.js is not invoking the code paths that use these functions so practical attacks via Node.js using this defect are _unlikely_ to be possible. More info is available at [CVE-2016-0797](https://www.openssl.org/news/vulnerabilities.html#2016-0797). * Fix a defect that can cause memory corruption in certain very rare cases relating to the internal `BN_hex2bn()` and `BN_dec2bn()` functions. It is believed that Node.js is not invoking the code paths that use these functions so practical attacks via Node.js using this defect are _unlikely_ to be possible. More info is available at [CVE-2016-0797](https://www.openssl.org/news/vulnerabilities.html#2016-0797).
- Fix a defect that makes the _[CacheBleed Attack](https://ssrg.nicta.com.au/projects/TS/cachebleed/)_ possible. This defect enables attackers to execute side-channel attacks leading to the potential recovery of entire RSA private keys. It only affects the Intel Sandy Bridge (and possibly older) microarchitecture when using hyper-threading. Newer microarchitectures, including Haswell, are unaffected. More info is available at [CVE-2016-0702](https://www.openssl.org/news/vulnerabilities.html#2016-0702). * Fix a defect that makes the _[CacheBleed Attack](https://ssrg.nicta.com.au/projects/TS/cachebleed/)_ possible. This defect enables attackers to execute side-channel attacks leading to the potential recovery of entire RSA private keys. It only affects the Intel Sandy Bridge (and possibly older) microarchitecture when using hyper-threading. Newer microarchitectures, including Haswell, are unaffected. More info is available at [CVE-2016-0702](https://www.openssl.org/news/vulnerabilities.html#2016-0702).
## Commits ## Commits
@ -2354,17 +2354,17 @@ This is a security release with only a single commit, an update to openssl due t
* **buffer** * **buffer**
* make byteLength work with Buffer correctly (Jackson Tian) * make byteLength work with Buffer correctly (Jackson Tian)
- [#4738](https://github.com/nodejs/node/pull/4738) * [#4738](https://github.com/nodejs/node/pull/4738)
* **debugger** * **debugger**
* guard against call from non-node context (Ben Noordhuis) * guard against call from non-node context (Ben Noordhuis)
- [#4328](https://github.com/nodejs/node/pull/4328) * [#4328](https://github.com/nodejs/node/pull/4328)
- fixes segfaults in debugger * fixes segfaults in debugger
* do not incept debug context (Myles Borins) * do not incept debug context (Myles Borins)
- [#4819](https://github.com/nodejs/node/pull/4819) * [#4819](https://github.com/nodejs/node/pull/4819)
- fixes crash in debugger when using util methods * fixes crash in debugger when using util methods
* **deps** * **deps**
* update to http-parser 2.5.2 (James Snell) * update to http-parser 2.5.2 (James Snell)
- [#5238](https://github.com/nodejs/node/pull/5238) * [#5238](https://github.com/nodejs/node/pull/5238)
### Commits ### Commits
@ -2446,8 +2446,8 @@ Note that this release includes a non-backward compatible change to address a se
* **http-parser**: upgrade from 2.5.0 to 2.5.1 * **http-parser**: upgrade from 2.5.0 to 2.5.1
* **openssl**: upgrade from 1.0.2e to 1.0.2f. To mitigate against the Logjam attack, TLS clients now reject Diffie-Hellman handshakes with parameters shorter than 1024-bits, up from the previous limit of 768-bits. * **openssl**: upgrade from 1.0.2e to 1.0.2f. To mitigate against the Logjam attack, TLS clients now reject Diffie-Hellman handshakes with parameters shorter than 1024-bits, up from the previous limit of 768-bits.
* **src**: * **src**:
- introduce new `--security-revert={cvenum}` command line flag for selective reversion of specific CVE fixes * introduce new `--security-revert={cvenum}` command line flag for selective reversion of specific CVE fixes
- allow the fix for CVE-2016-2216 to be selectively reverted using `--security-revert=CVE-2016-2216` * allow the fix for CVE-2016-2216 to be selectively reverted using `--security-revert=CVE-2016-2216`
### Commits ### Commits
@ -2889,8 +2889,8 @@ Security Update
* **http**: Fix CVE-2015-8027, a bug whereby an HTTP socket may no longer have a parser associated with it but a pipelined request attempts to trigger a pause or resume on the non-existent parser, a potential denial-of-service vulnerability. (Fedor Indutny) * **http**: Fix CVE-2015-8027, a bug whereby an HTTP socket may no longer have a parser associated with it but a pipelined request attempts to trigger a pause or resume on the non-existent parser, a potential denial-of-service vulnerability. (Fedor Indutny)
* **openssl**: Upgrade to 1.0.2e, containing fixes for: * **openssl**: Upgrade to 1.0.2e, containing fixes for:
- CVE-2015-3193 "BN_mod_exp may produce incorrect results on x86_64", an attack may be possible against a Node.js TLS server using DHE key exchange. Details are available at <http://openssl.org/news/secadv/20151203.txt>. * CVE-2015-3193 "BN_mod_exp may produce incorrect results on x86_64", an attack may be possible against a Node.js TLS server using DHE key exchange. Details are available at <http://openssl.org/news/secadv/20151203.txt>.
- CVE-2015-3194 "Certificate verify crash with missing PSS parameter", a potential denial-of-service vector for Node.js TLS servers using client certificate authentication; TLS clients are also impacted. Details are available at <http://openssl.org/news/secadv/20151203.txt>. * CVE-2015-3194 "Certificate verify crash with missing PSS parameter", a potential denial-of-service vector for Node.js TLS servers using client certificate authentication; TLS clients are also impacted. Details are available at <http://openssl.org/news/secadv/20151203.txt>.
(Shigeki Ohtsu) [#4134](https://github.com/nodejs/node/pull/4134) (Shigeki Ohtsu) [#4134](https://github.com/nodejs/node/pull/4134)
* **v8**: Backport fix for CVE-2015-6764, a bug in `JSON.stringify()` that can result in out-of-bounds reads for arrays. (Ben Noordhuis) * **v8**: Backport fix for CVE-2015-6764, a bug in `JSON.stringify()` that can result in out-of-bounds reads for arrays. (Ben Noordhuis)
@ -3008,8 +3008,8 @@ This is an LTS maintenance release that addresses a number of issues:
### Notable changes ### Notable changes
* Includes fixes for two regressions * Includes fixes for two regressions
- Assertion error in WeakCallback - see [#3329](https://github.com/nodejs/node/pull/3329) * Assertion error in WeakCallback - see [#3329](https://github.com/nodejs/node/pull/3329)
- Undefined timeout regression - see [#3331](https://github.com/nodejs/node/pull/3331) * Undefined timeout regression - see [#3331](https://github.com/nodejs/node/pull/3331)
### Known issues ### Known issues
@ -3034,9 +3034,9 @@ The first Node.js LTS release! See https://github.com/nodejs/LTS/ for details of
* **icu**: Updated to version 56 with significant performance improvements (Steven R. Loomis) [#3281](https://github.com/nodejs/node/pull/3281) * **icu**: Updated to version 56 with significant performance improvements (Steven R. Loomis) [#3281](https://github.com/nodejs/node/pull/3281)
* **node**: * **node**:
- Added new `-c` (or `--check`) command line argument for checking script syntax without executing the code (Dave Eddy) [#2411](https://github.com/nodejs/node/pull/2411) * Added new `-c` (or `--check`) command line argument for checking script syntax without executing the code (Dave Eddy) [#2411](https://github.com/nodejs/node/pull/2411)
- Added `process.versions.icu` to hold the current ICU library version (Evan Lucas) [#3102](https://github.com/nodejs/node/pull/3102) * Added `process.versions.icu` to hold the current ICU library version (Evan Lucas) [#3102](https://github.com/nodejs/node/pull/3102)
- Added `process.release.lts` to hold the current LTS codename when the binary is from an active LTS release line (Rod Vagg) [#3212](https://github.com/nodejs/node/pull/3212) * Added `process.release.lts` to hold the current LTS codename when the binary is from an active LTS release line (Rod Vagg) [#3212](https://github.com/nodejs/node/pull/3212)
* **npm**: Upgraded to npm 2.14.7 from 2.14.4, see [release notes](https://github.com/npm/npm/releases/tag/v2.14.7) for full details (Kat Marchán) [#3299](https://github.com/nodejs/node/pull/3299) * **npm**: Upgraded to npm 2.14.7 from 2.14.4, see [release notes](https://github.com/npm/npm/releases/tag/v2.14.7) for full details (Kat Marchán) [#3299](https://github.com/nodejs/node/pull/3299)
### Known issues ### Known issues
@ -3116,15 +3116,15 @@ See https://github.com/nodejs/node/labels/confirmed-bug for complete and current
### Notable changes ### Notable changes
* **http**: * **http**:
- Fix out-of-order 'finish' event bug in pipelining that can abort execution, fixes DoS vulnerability [CVE-2015-7384](https://github.com/nodejs/node/issues/3138) (Fedor Indutny) [#3128](https://github.com/nodejs/node/pull/3128) * Fix out-of-order 'finish' event bug in pipelining that can abort execution, fixes DoS vulnerability [CVE-2015-7384](https://github.com/nodejs/node/issues/3138) (Fedor Indutny) [#3128](https://github.com/nodejs/node/pull/3128)
- Account for pending response data instead of just the data on the current request to decide whether pause the socket or not (Fedor Indutny) [#3128](https://github.com/nodejs/node/pull/3128) * Account for pending response data instead of just the data on the current request to decide whether pause the socket or not (Fedor Indutny) [#3128](https://github.com/nodejs/node/pull/3128)
* **libuv**: Upgraded from v1.7.4 to v1.7.5, see [release notes](https://github.com/libuv/libuv/releases/tag/v1.7.5) for details (Saúl Ibarra Corretgé) [#3010](https://github.com/nodejs/node/pull/3010) * **libuv**: Upgraded from v1.7.4 to v1.7.5, see [release notes](https://github.com/libuv/libuv/releases/tag/v1.7.5) for details (Saúl Ibarra Corretgé) [#3010](https://github.com/nodejs/node/pull/3010)
- A better rwlock implementation for all Windows versions * A better rwlock implementation for all Windows versions
- Improved AIX support * Improved AIX support
* **v8**: * **v8**:
- Upgraded from v4.5.103.33 to v4.5.103.35 (Ali Ijaz Sheikh) [#3117](https://github.com/nodejs/node/pull/3117) * Upgraded from v4.5.103.33 to v4.5.103.35 (Ali Ijaz Sheikh) [#3117](https://github.com/nodejs/node/pull/3117)
- Backported [f782159](https://codereview.chromium.org/1367123003) from v8's upstream to help speed up Promise introspection (Ben Noordhuis) [#3130](https://github.com/nodejs/node/pull/3130) * Backported [f782159](https://codereview.chromium.org/1367123003) from v8's upstream to help speed up Promise introspection (Ben Noordhuis) [#3130](https://github.com/nodejs/node/pull/3130)
- Backported [c281c15](https://codereview.chromium.org/1363683002) from v8's upstream to add JSTypedArray length in post-mortem metadata (Julien Gilli) [#3031](https://github.com/nodejs/node/pull/3031) * Backported [c281c15](https://codereview.chromium.org/1363683002) from v8's upstream to add JSTypedArray length in post-mortem metadata (Julien Gilli) [#3031](https://github.com/nodejs/node/pull/3031)
### Known issues ### Known issues
@ -3186,11 +3186,11 @@ See https://github.com/nodejs/node/labels/confirmed-bug for complete and current
* **buffer**: Fixed a bug introduced in v4.1.0 where allocating a new zero-length buffer can result in the _next_ allocation of a TypedArray in JavaScript not being zero-filled. In certain circumstances this could result in data leakage via reuse of memory space in TypedArrays, breaking the normally safe assumption that TypedArrays should be always zero-filled. (Trevor Norris) [#2931](https://github.com/nodejs/node/pull/2931). * **buffer**: Fixed a bug introduced in v4.1.0 where allocating a new zero-length buffer can result in the _next_ allocation of a TypedArray in JavaScript not being zero-filled. In certain circumstances this could result in data leakage via reuse of memory space in TypedArrays, breaking the normally safe assumption that TypedArrays should be always zero-filled. (Trevor Norris) [#2931](https://github.com/nodejs/node/pull/2931).
* **http**: Guard against response-splitting of HTTP trailing headers added via [`response.addTrailers()`](https://nodejs.org/api/http.html#http_response_addtrailers_headers) by removing new-line (`[\r\n]`) characters from values. Note that standard header values are already stripped of new-line characters. The expected security impact is low because trailing headers are rarely used. (Ben Noordhuis) [#2945](https://github.com/nodejs/node/pull/2945). * **http**: Guard against response-splitting of HTTP trailing headers added via [`response.addTrailers()`](https://nodejs.org/api/http.html#http_response_addtrailers_headers) by removing new-line (`[\r\n]`) characters from values. Note that standard header values are already stripped of new-line characters. The expected security impact is low because trailing headers are rarely used. (Ben Noordhuis) [#2945](https://github.com/nodejs/node/pull/2945).
* **npm**: Upgrade to npm 2.14.4 from 2.14.3, see [release notes](https://github.com/npm/npm/releases/tag/v2.14.4) for full details (Kat Marchán) [#2958](https://github.com/nodejs/node/pull/2958) * **npm**: Upgrade to npm 2.14.4 from 2.14.3, see [release notes](https://github.com/npm/npm/releases/tag/v2.14.4) for full details (Kat Marchán) [#2958](https://github.com/nodejs/node/pull/2958)
- Upgrades `graceful-fs` on multiple dependencies to no longer rely on monkey-patching `fs` * Upgrades `graceful-fs` on multiple dependencies to no longer rely on monkey-patching `fs`
- Fix `npm link` for pre-release / RC builds of Node * Fix `npm link` for pre-release / RC builds of Node
* **v8**: Update post-mortem metadata to allow post-mortem debugging tools to find and inspect: * **v8**: Update post-mortem metadata to allow post-mortem debugging tools to find and inspect:
- JavaScript objects that use dictionary properties (Julien Gilli) [#2959](https://github.com/nodejs/node/pull/2959) * JavaScript objects that use dictionary properties (Julien Gilli) [#2959](https://github.com/nodejs/node/pull/2959)
- ScopeInfo and thus closures (Julien Gilli) [#2974](https://github.com/nodejs/node/pull/2974) * ScopeInfo and thus closures (Julien Gilli) [#2974](https://github.com/nodejs/node/pull/2974)
### Known issues ### Known issues
@ -3237,17 +3237,17 @@ See https://github.com/nodejs/node/labels/confirmed-bug for complete and current
### Notable changes ### Notable changes
* **buffer**: * **buffer**:
- Buffers are now created in JavaScript, rather than C++. This increases the speed of buffer creation (Trevor Norris) [#2866](https://github.com/nodejs/node/pull/2866). * Buffers are now created in JavaScript, rather than C++. This increases the speed of buffer creation (Trevor Norris) [#2866](https://github.com/nodejs/node/pull/2866).
- `Buffer#slice()` now uses `Uint8Array#subarray()` internally, increasing `slice()` performance (Karl Skomski) [#2777](https://github.com/nodejs/node/pull/2777). * `Buffer#slice()` now uses `Uint8Array#subarray()` internally, increasing `slice()` performance (Karl Skomski) [#2777](https://github.com/nodejs/node/pull/2777).
* **fs**: * **fs**:
- `fs.utimes()` now properly converts numeric strings, `NaN`, and `Infinity` (Yazhong Liu) [#2387](https://github.com/nodejs/node/pull/2387). * `fs.utimes()` now properly converts numeric strings, `NaN`, and `Infinity` (Yazhong Liu) [#2387](https://github.com/nodejs/node/pull/2387).
- `fs.WriteStream` now implements `_writev`, allowing for super-fast bulk writes (Ron Korving) [#2167](https://github.com/nodejs/node/pull/2167). * `fs.WriteStream` now implements `_writev`, allowing for super-fast bulk writes (Ron Korving) [#2167](https://github.com/nodejs/node/pull/2167).
* **http**: Fixed an issue with certain `write()` sizes causing errors when using `http.request()` (Fedor Indutny) [#2824](https://github.com/nodejs/node/pull/2824). * **http**: Fixed an issue with certain `write()` sizes causing errors when using `http.request()` (Fedor Indutny) [#2824](https://github.com/nodejs/node/pull/2824).
* **npm**: Upgrade to version 2.14.3, see https://github.com/npm/npm/releases/tag/v2.14.3 for more details (Kat Marchán) [#2822](https://github.com/nodejs/node/pull/2822). * **npm**: Upgrade to version 2.14.3, see https://github.com/npm/npm/releases/tag/v2.14.3 for more details (Kat Marchán) [#2822](https://github.com/nodejs/node/pull/2822).
* **src**: V8 cpu profiling no longer erroneously shows idle time (Oleksandr Chekhovskyi) [#2324](https://github.com/nodejs/node/pull/2324). * **src**: V8 cpu profiling no longer erroneously shows idle time (Oleksandr Chekhovskyi) [#2324](https://github.com/nodejs/node/pull/2324).
* **timers**: `#ref()` and `#unref()` now return the timer they belong to (Sam Roberts) [#2905](https://github.com/nodejs/node/pull/2905). * **timers**: `#ref()` and `#unref()` now return the timer they belong to (Sam Roberts) [#2905](https://github.com/nodejs/node/pull/2905).
* **v8**: Lateral upgrade to 4.5.103.33 from 4.5.103.30, contains minor fixes (Ali Ijaz Sheikh) [#2870](https://github.com/nodejs/node/pull/2870). * **v8**: Lateral upgrade to 4.5.103.33 from 4.5.103.30, contains minor fixes (Ali Ijaz Sheikh) [#2870](https://github.com/nodejs/node/pull/2870).
- This fixes a previously known bug where some computed object shorthand properties did not work correctly ([#2507](https://github.com/nodejs/node/issues/2507)). * This fixes a previously known bug where some computed object shorthand properties did not work correctly ([#2507](https://github.com/nodejs/node/issues/2507)).
### Known issues ### Known issues
@ -3330,10 +3330,10 @@ This list of changes is relative to the last io.js v3.x branch release, v3.3.0.
* **timers**: Improved timer performance from porting the 0.12 implementation, plus minor fixes (Jeremiah Senkpiel) [#2540](https://github.com/nodejs/node/pull/2540), (Julien Gilli) [nodejs/node-v0.x-archive#8751](https://github.com/nodejs/node-v0.x-archive/pull/8751) [nodejs/node-v0.x-archive#8905](https://github.com/nodejs/node-v0.x-archive/pull/8905) * **timers**: Improved timer performance from porting the 0.12 implementation, plus minor fixes (Jeremiah Senkpiel) [#2540](https://github.com/nodejs/node/pull/2540), (Julien Gilli) [nodejs/node-v0.x-archive#8751](https://github.com/nodejs/node-v0.x-archive/pull/8751) [nodejs/node-v0.x-archive#8905](https://github.com/nodejs/node-v0.x-archive/pull/8905)
* **util**: The `util.is*()` functions have been deprecated, beginning with deprecation warnings in the documentation for this release, users are encouraged to seek more robust alternatives in the npm registry, (Sakthipriyan Vairamani) [#2447](https://github.com/nodejs/node/pull/2447). * **util**: The `util.is*()` functions have been deprecated, beginning with deprecation warnings in the documentation for this release, users are encouraged to seek more robust alternatives in the npm registry, (Sakthipriyan Vairamani) [#2447](https://github.com/nodejs/node/pull/2447).
* **v8**: Upgrade to version 4.5.103.30 from 4.4.63.30 (Ali Ijaz Sheikh) [#2632](https://github.com/nodejs/node/pull/2632). * **v8**: Upgrade to version 4.5.103.30 from 4.4.63.30 (Ali Ijaz Sheikh) [#2632](https://github.com/nodejs/node/pull/2632).
- Implement new `TypedArray` prototype methods: `copyWithin()`, `every()`, `fill()`, `filter()`, `find()`, `findIndex()`, `forEach()`, `indexOf()`, `join()`, `lastIndexOf()`, `map()`, `reduce()`, `reduceRight()`, `reverse()`, `slice()`, `some()`, `sort()`. See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray for further information. * Implement new `TypedArray` prototype methods: `copyWithin()`, `every()`, `fill()`, `filter()`, `find()`, `findIndex()`, `forEach()`, `indexOf()`, `join()`, `lastIndexOf()`, `map()`, `reduce()`, `reduceRight()`, `reverse()`, `slice()`, `some()`, `sort()`. See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray for further information.
- Implement new `TypedArray.from()` and `TypedArray.of()` functions. See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray for further information. * Implement new `TypedArray.from()` and `TypedArray.of()` functions. See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray for further information.
- Implement arrow functions, see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/Arrow_functions for further information. * Implement arrow functions, see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/Arrow_functions for further information.
- Full ChangeLog available at https://github.com/v8/v8-git-mirror/blob/4.5.103/ChangeLog * Full ChangeLog available at https://github.com/v8/v8-git-mirror/blob/4.5.103/ChangeLog
### Known issues ### Known issues

View File

@ -346,10 +346,10 @@ This is a security release. All Node.js users should consult the security releas
### Notable changes ### Notable changes
* **buffer**: Now properly throws `RangeError`s on out-of-bounds writes (Matt Loring) [#5605](https://github.com/nodejs/node/pull/5605). * **buffer**: Now properly throws `RangeError`s on out-of-bounds writes (Matt Loring) [#5605](https://github.com/nodejs/node/pull/5605).
- This effects `write{Float|Double}` when the `noAssert` option is not used. * This effects `write{Float|Double}` when the `noAssert` option is not used.
* **timers**: * **timers**:
- Returned timeout objects now have a `Timeout` constructor name (Jeremiah Senkpiel) [#5793](https://github.com/nodejs/node/pull/5793). * Returned timeout objects now have a `Timeout` constructor name (Jeremiah Senkpiel) [#5793](https://github.com/nodejs/node/pull/5793).
- Performance of `Immediate` processing is now ~20-40% faster (Brian White) [#4169](https://github.com/nodejs/node/pull/4169). * Performance of `Immediate` processing is now ~20-40% faster (Brian White) [#4169](https://github.com/nodejs/node/pull/4169).
* **vm**: Fixed a contextify regression introduced in v5.9.0 (Ali Ijaz Sheikh) [#5800](https://github.com/nodejs/node/pull/5800). * **vm**: Fixed a contextify regression introduced in v5.9.0 (Ali Ijaz Sheikh) [#5800](https://github.com/nodejs/node/pull/5800).
### Commits ### Commits
@ -405,13 +405,13 @@ This is a security release. All Node.js users should consult the security releas
* **contextify**: Fixed a memory consumption issue related to heavy use of `vm.createContext` and `vm.runInNewContext`. (Ali Ijaz Sheikh) * **contextify**: Fixed a memory consumption issue related to heavy use of `vm.createContext` and `vm.runInNewContext`. (Ali Ijaz Sheikh)
https://github.com/nodejs/node/pull/5392 https://github.com/nodejs/node/pull/5392
* **governance**: The following members have been added as collaborators: * **governance**: The following members have been added as collaborators:
- Andreas Madsen (@AndreasMadsen) * Andreas Madsen (@AndreasMadsen)
- Benjamin Gruenbaum (@benjamingr) * Benjamin Gruenbaum (@benjamingr)
- Claudio Rodriguez (@claudiorodriguez) * Claudio Rodriguez (@claudiorodriguez)
- Glen Keane (@thekemkid) * Glen Keane (@thekemkid)
- Jeremy Whitlock (@whitlockjc) * Jeremy Whitlock (@whitlockjc)
- Matt Loring (@matthewloring) * Matt Loring (@matthewloring)
- Phillip Johnsen (@phillipj) * Phillip Johnsen (@phillipj)
* **lib**: copy arguments object instead of leaking it (Nathan Woltman) * **lib**: copy arguments object instead of leaking it (Nathan Woltman)
https://github.com/nodejs/node/pull/4361 https://github.com/nodejs/node/pull/4361
* **src**: allow both -i and -e flags to be used at the same time (Rich Trott) * **src**: allow both -i and -e flags to be used at the same time (Rich Trott)
@ -419,7 +419,7 @@ https://github.com/nodejs/node/pull/5655
* **timers**: Internal Node.js timeouts now use the same logic path as those created with `setTimeout()` (Jeremiah Senkpiel) [#4007](https://github.com/nodejs/node/pull/4007) * **timers**: Internal Node.js timeouts now use the same logic path as those created with `setTimeout()` (Jeremiah Senkpiel) [#4007](https://github.com/nodejs/node/pull/4007)
* This may cause a slightly different performance profile in some situations. So far, it has shown to be positive in most cases. * This may cause a slightly different performance profile in some situations. So far, it has shown to be positive in most cases.
* **v8**: backport fb4ccae from v8 upstream (Vladimir Krivosheev) #4231 * **v8**: backport fb4ccae from v8 upstream (Vladimir Krivosheev) #4231
- breakout events from v8 to offer better support for external debuggers * breakout events from v8 to offer better support for external debuggers
* **zlib**: add support for concatenated members (Kári Tristan Helgason) * **zlib**: add support for concatenated members (Kári Tristan Helgason)
https://github.com/nodejs/node/pull/5120 https://github.com/nodejs/node/pull/5120
* Previously, if multiple members were in the same archive, only the first would be read. The others are no longer thrown away. * Previously, if multiple members were in the same archive, only the first would be read. The others are no longer thrown away.
@ -481,11 +481,11 @@ https://github.com/nodejs/node/pull/5655
### Notable changes ### Notable changes
* **child_process**: `send()` now accepts an options parameter (cjihrig) [#5283](https://github.com/nodejs/node/pull/5283). * **child_process**: `send()` now accepts an options parameter (cjihrig) [#5283](https://github.com/nodejs/node/pull/5283).
- Currently the only option is `keepOpen`, which keeps the underlying socket open after the message is sent. * Currently the only option is `keepOpen`, which keeps the underlying socket open after the message is sent.
* **constants**: `ENGINE_METHOD_RSA` is now correctly exposed (Sam Roberts) [#5463](https://github.com/nodejs/node/pull/5463). * **constants**: `ENGINE_METHOD_RSA` is now correctly exposed (Sam Roberts) [#5463](https://github.com/nodejs/node/pull/5463).
* Fixed two regressions which originated in v5.7.0: * Fixed two regressions which originated in v5.7.0:
- **http**: Errors inside of http client callbacks now propagate correctly (Trevor Norris) [#5591](https://github.com/nodejs/node/pull/5591). * **http**: Errors inside of http client callbacks now propagate correctly (Trevor Norris) [#5591](https://github.com/nodejs/node/pull/5591).
- **path**: Fixed normalization of absolute paths (Evan Lucas) [#5589](https://github.com/nodejs/node/pull/5589). * **path**: Fixed normalization of absolute paths (Evan Lucas) [#5589](https://github.com/nodejs/node/pull/5589).
* **repl**: `start()` no longer requires an options parameter (cjihrig) [#5388](https://github.com/nodejs/node/pull/5388). * **repl**: `start()` no longer requires an options parameter (cjihrig) [#5388](https://github.com/nodejs/node/pull/5388).
* **util**: Improved `format()` performance 50-300% (Evan Lucas) [#5360](https://github.com/nodejs/node/pull/5360). * **util**: Improved `format()` performance 50-300% (Evan Lucas) [#5360](https://github.com/nodejs/node/pull/5360).
@ -530,16 +530,16 @@ https://github.com/nodejs/node/pull/5655
* **governance**: The Core Technical Committee (CTC) added four new members to help guide Node.js core development: Evan Lucas, Rich Trott, Ali Ijaz Sheikh and Сковорода Никита Андреевич (Nikita Skovoroda). * **governance**: The Core Technical Committee (CTC) added four new members to help guide Node.js core development: Evan Lucas, Rich Trott, Ali Ijaz Sheikh and Сковорода Никита Андреевич (Nikita Skovoroda).
* **openssl**: Upgrade from 1.0.2f to 1.0.2g (Ben Noordhuis) [#5507](https://github.com/nodejs/node/pull/5507). * **openssl**: Upgrade from 1.0.2f to 1.0.2g (Ben Noordhuis) [#5507](https://github.com/nodejs/node/pull/5507).
- Fix a double-free defect in parsing malformed DSA keys that may potentially be used for DoS or memory corruption attacks. It is likely to be very difficult to use this defect for a practical attack and is therefore considered low severity for Node.js users. More info is available at [CVE-2016-0705](https://www.openssl.org/news/vulnerabilities.html#2016-0705). * Fix a double-free defect in parsing malformed DSA keys that may potentially be used for DoS or memory corruption attacks. It is likely to be very difficult to use this defect for a practical attack and is therefore considered low severity for Node.js users. More info is available at [CVE-2016-0705](https://www.openssl.org/news/vulnerabilities.html#2016-0705).
- Fix a defect that can cause memory corruption in certain very rare cases relating to the internal `BN_hex2bn()` and `BN_dec2bn()` functions. It is believed that Node.js is not invoking the code paths that use these functions so practical attacks via Node.js using this defect are _unlikely_ to be possible. More info is available at [CVE-2016-0797](https://www.openssl.org/news/vulnerabilities.html#2016-0797). * Fix a defect that can cause memory corruption in certain very rare cases relating to the internal `BN_hex2bn()` and `BN_dec2bn()` functions. It is believed that Node.js is not invoking the code paths that use these functions so practical attacks via Node.js using this defect are _unlikely_ to be possible. More info is available at [CVE-2016-0797](https://www.openssl.org/news/vulnerabilities.html#2016-0797).
- Fix a defect that makes the _[CacheBleed Attack](https://ssrg.nicta.com.au/projects/TS/cachebleed/)_ possible. This defect enables attackers to execute side-channel attacks leading to the potential recovery of entire RSA private keys. It only affects the Intel Sandy Bridge (and possibly older) microarchitecture when using hyper-threading. Newer microarchitectures, including Haswell, are unaffected. More info is available at [CVE-2016-0702](https://www.openssl.org/news/vulnerabilities.html#2016-0702). * Fix a defect that makes the _[CacheBleed Attack](https://ssrg.nicta.com.au/projects/TS/cachebleed/)_ possible. This defect enables attackers to execute side-channel attacks leading to the potential recovery of entire RSA private keys. It only affects the Intel Sandy Bridge (and possibly older) microarchitecture when using hyper-threading. Newer microarchitectures, including Haswell, are unaffected. More info is available at [CVE-2016-0702](https://www.openssl.org/news/vulnerabilities.html#2016-0702).
* Fixed several regressions that appeared in v5.7.0: * Fixed several regressions that appeared in v5.7.0:
- **`path.relative()`**: * **`path.relative()`**:
- Output is no longer unnecessarily verbose (Brian White) [#5389](https://github.com/nodejs/node/pull/5389). * Output is no longer unnecessarily verbose (Brian White) [#5389](https://github.com/nodejs/node/pull/5389).
- Resolving UNC paths on Windows now works correctly (Owen Smith) [#5456](https://github.com/nodejs/node/pull/5456). * Resolving UNC paths on Windows now works correctly (Owen Smith) [#5456](https://github.com/nodejs/node/pull/5456).
- Resolving paths with prefixes now works correctly from the root directory (Owen Smith) [#5490](https://github.com/nodejs/node/pull/5490). * Resolving paths with prefixes now works correctly from the root directory (Owen Smith) [#5490](https://github.com/nodejs/node/pull/5490).
- **url**: Fixed an off-by-one error with `parse()` (Brian White) [#5394](https://github.com/nodejs/node/pull/5394). * **url**: Fixed an off-by-one error with `parse()` (Brian White) [#5394](https://github.com/nodejs/node/pull/5394).
- **dgram**: Now correctly handles a default address case when offset and length are specified (Matteo Collina) [#5407](https://github.com/nodejs/node/pull/5407). * **dgram**: Now correctly handles a default address case when offset and length are specified (Matteo Collina) [#5407](https://github.com/nodejs/node/pull/5407).
### Commits ### Commits
@ -624,8 +624,8 @@ https://github.com/nodejs/node/pull/5655
### Notable changes ### Notable changes
* **buffer**: * **buffer**:
- You can now supply an `encoding` argument when filling a Buffer `Buffer#fill(string[, start[, end]][, encoding])`, supplying an existing Buffer will also work with `Buffer#fill(buffer[, start[, end]])`. See the [API documentation](https://nodejs.org/api/buffer.html#buffer_buf_fill_value_offset_end_encoding) for details on how this works. (Trevor Norris) [#4935](https://github.com/nodejs/node/pull/4935) * You can now supply an `encoding` argument when filling a Buffer `Buffer#fill(string[, start[, end]][, encoding])`, supplying an existing Buffer will also work with `Buffer#fill(buffer[, start[, end]])`. See the [API documentation](https://nodejs.org/api/buffer.html#buffer_buf_fill_value_offset_end_encoding) for details on how this works. (Trevor Norris) [#4935](https://github.com/nodejs/node/pull/4935)
- `Buffer#indexOf()` no longer requires a `byteOffset` argument if you also wish to specify an `encoding`: `Buffer#indexOf(val[, byteOffset][, encoding])`. (Trevor Norris) [#4803](https://github.com/nodejs/node/pull/4803) * `Buffer#indexOf()` no longer requires a `byteOffset` argument if you also wish to specify an `encoding`: `Buffer#indexOf(val[, byteOffset][, encoding])`. (Trevor Norris) [#4803](https://github.com/nodejs/node/pull/4803)
* **child_process**: `spawn()` and `spawnSync()` now support a `'shell'` option to allow for optional execution of the given command inside a shell. If set to `true`, `cmd.exe` will be used on Windows and `/bin/sh` elsewhere. A path to a custom shell can also be passed to override these defaults. On Windows, this option allows `.bat.` and `.cmd` files to be executed with `spawn()` and `spawnSync()`. (Colin Ihrig) [#4598](https://github.com/nodejs/node/pull/4598) * **child_process**: `spawn()` and `spawnSync()` now support a `'shell'` option to allow for optional execution of the given command inside a shell. If set to `true`, `cmd.exe` will be used on Windows and `/bin/sh` elsewhere. A path to a custom shell can also be passed to override these defaults. On Windows, this option allows `.bat.` and `.cmd` files to be executed with `spawn()` and `spawnSync()`. (Colin Ihrig) [#4598](https://github.com/nodejs/node/pull/4598)
* **http_parser**: Update to http-parser 2.6.2 to fix an unintentionally strict limitation of allowable header characters (James M Snell) [#5237](https://github.com/nodejs/node/pull/5237) * **http_parser**: Update to http-parser 2.6.2 to fix an unintentionally strict limitation of allowable header characters (James M Snell) [#5237](https://github.com/nodejs/node/pull/5237)
* **dgram**: `socket.send()` now supports accepts an array of Buffers or Strings as the first argument. See the [API docs](https://nodejs.org/download/nightly/v6.0.0-nightly201602102848f84332/docs/api/dgram.html#dgram_socket_send_msg_offset_length_port_address_callback) for details on how this works. (Matteo Collina) [#4374](https://github.com/nodejs/node/pull/4374) * **dgram**: `socket.send()` now supports accepts an array of Buffers or Strings as the first argument. See the [API docs](https://nodejs.org/download/nightly/v6.0.0-nightly201602102848f84332/docs/api/dgram.html#dgram_socket_send_msg_offset_length_port_address_callback) for details on how this works. (Matteo Collina) [#4374](https://github.com/nodejs/node/pull/4374)
@ -635,10 +635,10 @@ https://github.com/nodejs/node/pull/5655
* **tls**: Add a new `tlsSocket.getProtocol()` method to get the negotiated TLS protocol version of the current connection. (Brian White) [#4995](https://github.com/nodejs/node/pull/4995) * **tls**: Add a new `tlsSocket.getProtocol()` method to get the negotiated TLS protocol version of the current connection. (Brian White) [#4995](https://github.com/nodejs/node/pull/4995)
* **vm**: Introduce new `'produceCachedData'` and `'cachedData'` options to `new vm.Script()` to interact with V8's code cache. When a new `vm.Script` object is created with the `'produceCachedData'` set to `true` a `Buffer` with V8's code cache data will be produced and stored in `cachedData` property of the returned object. This data in turn may be supplied back to another `vm.Script()` object with a `'cachedData'` option if the supplied source is the same. Successfully executing a script from cached data can speed up instantiation time. See the [API docs](https://nodejs.org/api/vm.html#vm_new_vm_script_code_options) for details. (Fedor Indutny) [#4777](https://github.com/nodejs/node/pull/4777) * **vm**: Introduce new `'produceCachedData'` and `'cachedData'` options to `new vm.Script()` to interact with V8's code cache. When a new `vm.Script` object is created with the `'produceCachedData'` set to `true` a `Buffer` with V8's code cache data will be produced and stored in `cachedData` property of the returned object. This data in turn may be supplied back to another `vm.Script()` object with a `'cachedData'` option if the supplied source is the same. Successfully executing a script from cached data can speed up instantiation time. See the [API docs](https://nodejs.org/api/vm.html#vm_new_vm_script_code_options) for details. (Fedor Indutny) [#4777](https://github.com/nodejs/node/pull/4777)
* **performance**: Improvements in: * **performance**: Improvements in:
- `process.nextTick()` (Ruben Bridgewater) [#5092](https://github.com/nodejs/node/pull/5092) * `process.nextTick()` (Ruben Bridgewater) [#5092](https://github.com/nodejs/node/pull/5092)
- `path` module (Brian White) [#5123](https://github.com/nodejs/node/pull/5123) * `path` module (Brian White) [#5123](https://github.com/nodejs/node/pull/5123)
- `querystring` module (Brian White) [#5012](https://github.com/nodejs/node/pull/5012) * `querystring` module (Brian White) [#5012](https://github.com/nodejs/node/pull/5012)
- `streams` module when processing small chunks (Matteo Collina) [#4354](https://github.com/nodejs/node/pull/4354) * `streams` module when processing small chunks (Matteo Collina) [#4354](https://github.com/nodejs/node/pull/4354)
### Commits ### Commits
@ -917,16 +917,16 @@ This is an important security release. All Node.js users should consult the secu
### Notable Changes ### Notable Changes
- **events**: make sure console functions exist (Dave) [#4479](https://github.com/nodejs/node/pull/4479) * **events**: make sure console functions exist (Dave) [#4479](https://github.com/nodejs/node/pull/4479)
- **fs**: add autoClose option to fs.createWriteStream (Saquib) [#3679](https://github.com/nodejs/node/pull/3679) * **fs**: add autoClose option to fs.createWriteStream (Saquib) [#3679](https://github.com/nodejs/node/pull/3679)
- **http**: improves expect header handling (Daniel Sellers) [#4501](https://github.com/nodejs/node/pull/4501) * **http**: improves expect header handling (Daniel Sellers) [#4501](https://github.com/nodejs/node/pull/4501)
- **node**: allow preload modules with -i (Evan Lucas) [#4696](https://github.com/nodejs/node/pull/4696) * **node**: allow preload modules with -i (Evan Lucas) [#4696](https://github.com/nodejs/node/pull/4696)
- **v8,src**: expose statistics about heap spaces (`v8.getHeapSpaceStatistics()`) (Ben Ripkens) [#4463](https://github.com/nodejs/node/pull/4463) * **v8,src**: expose statistics about heap spaces (`v8.getHeapSpaceStatistics()`) (Ben Ripkens) [#4463](https://github.com/nodejs/node/pull/4463)
- Minor performance improvements: * Minor performance improvements:
- **lib**: Use arrow functions instead of bind where possible (Minwoo Jung) [#3622](https://github.com/nodejs/node/pull/3622). * **lib**: Use arrow functions instead of bind where possible (Minwoo Jung) [#3622](https://github.com/nodejs/node/pull/3622).
- (Mistakenly missing from v5.4.0) * (Mistakenly missing from v5.4.0)
- **module**: cache stat() results more aggressively (Ben Noordhuis) [#4575](https://github.com/nodejs/node/pull/4575) * **module**: cache stat() results more aggressively (Ben Noordhuis) [#4575](https://github.com/nodejs/node/pull/4575)
- **querystring**: improve parse() performance (Brian White) [#4675](https://github.com/nodejs/node/pull/4675) * **querystring**: improve parse() performance (Brian White) [#4675](https://github.com/nodejs/node/pull/4675)
### Known issues ### Known issues
@ -1003,7 +1003,7 @@ This is an important security release. All Node.js users should consult the secu
### Notable Changes ### Notable Changes
* Minor performance improvements: * Minor performance improvements:
- **module**: move unnecessary work for early return (Andres Suarez) [#3579](https://github.com/nodejs/node/pull/3579) * **module**: move unnecessary work for early return (Andres Suarez) [#3579](https://github.com/nodejs/node/pull/3579)
* Various bug fixes * Various bug fixes
* Various doc fixes * Various doc fixes
* Various test improvements * Various test improvements
@ -1050,15 +1050,15 @@ This is an important security release. All Node.js users should consult the secu
### Notable changes ### Notable changes
* **http**: * **http**:
- A new status code was added: 451 - "Unavailable For Legal Reasons" (Max Barinov) [#4377](https://github.com/nodejs/node/pull/4377). * A new status code was added: 451 - "Unavailable For Legal Reasons" (Max Barinov) [#4377](https://github.com/nodejs/node/pull/4377).
- Idle sockets that have been kept alive now handle errors (José F. Romaniello) [#4482](https://github.com/nodejs/node/pull/4482). * Idle sockets that have been kept alive now handle errors (José F. Romaniello) [#4482](https://github.com/nodejs/node/pull/4482).
* This release also includes several minor performance improvements: * This release also includes several minor performance improvements:
- **assert**: deepEqual is now speedier when comparing TypedArrays (Claudio Rodriguez) [#4330](https://github.com/nodejs/node/pull/4330). * **assert**: deepEqual is now speedier when comparing TypedArrays (Claudio Rodriguez) [#4330](https://github.com/nodejs/node/pull/4330).
- **lib**: Use arrow functions instead of bind where possible (Minwoo Jung) [node#3622](https://github.com/nodejs/node/pull/3622). * **lib**: Use arrow functions instead of bind where possible (Minwoo Jung) [node#3622](https://github.com/nodejs/node/pull/3622).
- **node**: Improved accessor perf of `process.env` (Trevor Norris) [#3780](https://github.com/nodejs/node/pull/3780). * **node**: Improved accessor perf of `process.env` (Trevor Norris) [#3780](https://github.com/nodejs/node/pull/3780).
- **node**: Improved performance of `process.hrtime()` (Trevor Norris) [#3780](https://github.com/nodejs/node/pull/3780), (Evan Lucas) [#4484](https://github.com/nodejs/node/pull/4484). * **node**: Improved performance of `process.hrtime()` (Trevor Norris) [#3780](https://github.com/nodejs/node/pull/3780), (Evan Lucas) [#4484](https://github.com/nodejs/node/pull/4484).
- **node**: Improved GetActiveHandles performance (Trevor Norris) [#3780](https://github.com/nodejs/node/pull/3780). * **node**: Improved GetActiveHandles performance (Trevor Norris) [#3780](https://github.com/nodejs/node/pull/3780).
- **util**: Use faster iteration in `util.format()` (Jackson Tian) [#3964](https://github.com/nodejs/node/pull/3964). * **util**: Use faster iteration in `util.format()` (Jackson Tian) [#3964](https://github.com/nodejs/node/pull/3964).
### Known issues ### Known issues
@ -1174,15 +1174,15 @@ This is an important security release. All Node.js users should consult the secu
### Notable changes ### Notable changes
* **buffer**: * **buffer**:
- `Buffer.prototype.includes()` has been added to keep parity with TypedArrays. (Alexander Martin) [#3567](https://github.com/nodejs/node/pull/3567). * `Buffer.prototype.includes()` has been added to keep parity with TypedArrays. (Alexander Martin) [#3567](https://github.com/nodejs/node/pull/3567).
* **domains**: * **domains**:
- Fix handling of uncaught exceptions. (Julien Gilli) [#3654](https://github.com/nodejs/node/pull/3654). * Fix handling of uncaught exceptions. (Julien Gilli) [#3654](https://github.com/nodejs/node/pull/3654).
* **https**: * **https**:
- Added support for disabling session caching. (Fedor Indutny) [#4252](https://github.com/nodejs/node/pull/4252). * Added support for disabling session caching. (Fedor Indutny) [#4252](https://github.com/nodejs/node/pull/4252).
* **repl**: * **repl**:
- Allow third party modules to be imported using `require()`. This corrects a regression from 5.2.0. (Ben Noordhuis) [#4215](https://github.com/nodejs/node/pull/4215). * Allow third party modules to be imported using `require()`. This corrects a regression from 5.2.0. (Ben Noordhuis) [#4215](https://github.com/nodejs/node/pull/4215).
* **deps**: * **deps**:
- Upgrade libuv to 1.8.0. (Saúl Ibarra Corretgé) [#4276](https://github.com/nodejs/node/pull/4276). * Upgrade libuv to 1.8.0. (Saúl Ibarra Corretgé) [#4276](https://github.com/nodejs/node/pull/4276).
### Known issues ### Known issues
@ -1251,12 +1251,12 @@ This is an important security release. All Node.js users should consult the secu
### Notable changes ### Notable changes
* **build**: * **build**:
- Add support for Intel's VTune JIT profiling when compiled with `--enable-vtune-profiling`. For more information about VTune, see <https://software.intel.com/en-us/node/544211>. (Chunyang Dai) [#3785](https://github.com/nodejs/node/pull/3785). * Add support for Intel's VTune JIT profiling when compiled with `--enable-vtune-profiling`. For more information about VTune, see <https://software.intel.com/en-us/node/544211>. (Chunyang Dai) [#3785](https://github.com/nodejs/node/pull/3785).
- Properly enable V8 snapshots by default. Due to a configuration error, snapshots have been kept off by default when the intention is for the feature to be enabled. (Fedor Indutny) [#3962](https://github.com/nodejs/node/pull/3962). * Properly enable V8 snapshots by default. Due to a configuration error, snapshots have been kept off by default when the intention is for the feature to be enabled. (Fedor Indutny) [#3962](https://github.com/nodejs/node/pull/3962).
* **crypto**: * **crypto**:
- Simplify use of ECDH (Elliptic Curve Diffie-Hellman) objects (created via `crypto.createECDH(curve_name)`) with private keys that are not dynamically generated via `generateKeys()`. The public key is now computed when explicitly setting a private key. Added validity checks to reduce the possibility of computing weak or invalid shared secrets. Also, deprecated the `setPublicKey()` method for ECDH objects as its usage is unnecessary and can lead to inconsistent state. (Michael Ruddy) [#3511](https://github.com/nodejs/node/pull/3511). * Simplify use of ECDH (Elliptic Curve Diffie-Hellman) objects (created via `crypto.createECDH(curve_name)`) with private keys that are not dynamically generated via `generateKeys()`. The public key is now computed when explicitly setting a private key. Added validity checks to reduce the possibility of computing weak or invalid shared secrets. Also, deprecated the `setPublicKey()` method for ECDH objects as its usage is unnecessary and can lead to inconsistent state. (Michael Ruddy) [#3511](https://github.com/nodejs/node/pull/3511).
- Update root certificates from the current list stored maintained by Mozilla NSS. (Ben Noordhuis) [#3951](https://github.com/nodejs/node/pull/3951). * Update root certificates from the current list stored maintained by Mozilla NSS. (Ben Noordhuis) [#3951](https://github.com/nodejs/node/pull/3951).
- Multiple CA certificates can now be passed with the `ca` option to TLS methods as an array of strings or in a single new-line separated string. (Ben Noordhuis) [#4099](https://github.com/nodejs/node/pull/4099) * Multiple CA certificates can now be passed with the `ca` option to TLS methods as an array of strings or in a single new-line separated string. (Ben Noordhuis) [#4099](https://github.com/nodejs/node/pull/4099)
* **tools**: Include a tick processor in core, exposed via the `--prof-process` command-line argument which can be used to process V8 profiling output files generated when using the `--prof` command-line argument. (Matt Loring) [#4021](https://github.com/nodejs/node/pull/4021). * **tools**: Include a tick processor in core, exposed via the `--prof-process` command-line argument which can be used to process V8 profiling output files generated when using the `--prof` command-line argument. (Matt Loring) [#4021](https://github.com/nodejs/node/pull/4021).
### Known issues ### Known issues
@ -1381,8 +1381,8 @@ This is an important security release. All Node.js users should consult the secu
* **http**: Fix CVE-2015-8027, a bug whereby an HTTP socket may no longer have a parser associated with it but a pipelined request attempts to trigger a pause or resume on the non-existent parser, a potential denial-of-service vulnerability. (Fedor Indutny) * **http**: Fix CVE-2015-8027, a bug whereby an HTTP socket may no longer have a parser associated with it but a pipelined request attempts to trigger a pause or resume on the non-existent parser, a potential denial-of-service vulnerability. (Fedor Indutny)
* **openssl**: Upgrade to 1.0.2e, containing fixes for: * **openssl**: Upgrade to 1.0.2e, containing fixes for:
- CVE-2015-3193 "BN_mod_exp may produce incorrect results on x86_64", an attack may be possible against a Node.js TLS server using DHE key exchange. Details are available at <http://openssl.org/news/secadv/20151203.txt>. * CVE-2015-3193 "BN_mod_exp may produce incorrect results on x86_64", an attack may be possible against a Node.js TLS server using DHE key exchange. Details are available at <http://openssl.org/news/secadv/20151203.txt>.
- CVE-2015-3194 "Certificate verify crash with missing PSS parameter", a potential denial-of-service vector for Node.js TLS servers using client certificate authentication; TLS clients are also impacted. Details are available at <http://openssl.org/news/secadv/20151203.txt>. * CVE-2015-3194 "Certificate verify crash with missing PSS parameter", a potential denial-of-service vector for Node.js TLS servers using client certificate authentication; TLS clients are also impacted. Details are available at <http://openssl.org/news/secadv/20151203.txt>.
(Shigeki Ohtsu) [#4134](https://github.com/nodejs/node/pull/4134) (Shigeki Ohtsu) [#4134](https://github.com/nodejs/node/pull/4134)
* **v8**: Backport fix for CVE-2015-6764, a bug in `JSON.stringify()` that can result in out-of-bounds reads for arrays. (Ben Noordhuis) * **v8**: Backport fix for CVE-2015-6764, a bug in `JSON.stringify()` that can result in out-of-bounds reads for arrays. (Ben Noordhuis)
@ -1406,14 +1406,14 @@ This is an important security release. All Node.js users should consult the secu
### Notable changes ### Notable changes
* **buffer**: The `noAssert` option for many buffer functions will now silently drop invalid write values rather than crashing (Minqi Pan) [#3767](https://github.com/nodejs/node/pull/3767). * **buffer**: The `noAssert` option for many buffer functions will now silently drop invalid write values rather than crashing (Minqi Pan) [#3767](https://github.com/nodejs/node/pull/3767).
- This makes the behavior match what the docs suggest. * This makes the behavior match what the docs suggest.
* **child_process**: `child.send()` now properly returns a boolean like the docs suggest (Rich Trott) [#3577](https://github.com/nodejs/node/pull/3577). * **child_process**: `child.send()` now properly returns a boolean like the docs suggest (Rich Trott) [#3577](https://github.com/nodejs/node/pull/3577).
* **doc**: All of the API docs have been re-ordered so as to read in alphabetical order (Tristian Flanagan) [#3662](https://github.com/nodejs/node/pull/3662). * **doc**: All of the API docs have been re-ordered so as to read in alphabetical order (Tristian Flanagan) [#3662](https://github.com/nodejs/node/pull/3662).
* **http_parser**: update http-parser to 2.6.0 from 2.5.0 (James M Snell) [#3569](https://github.com/nodejs/node/pull/3569). * **http_parser**: update http-parser to 2.6.0 from 2.5.0 (James M Snell) [#3569](https://github.com/nodejs/node/pull/3569).
- Now supports the following HTTP methods: `LINK`, `UNLINK`, `BIND`, `REBIND`, `UNBIND`. * Now supports the following HTTP methods: `LINK`, `UNLINK`, `BIND`, `REBIND`, `UNBIND`.
- Also added ACL and IPv6 Zone ID support. * Also added ACL and IPv6 Zone ID support.
* **npm**: upgrade npm to 3.3.12 from v3.3.6 (Rebecca Turner) [#3685](https://github.com/nodejs/node/pull/3685). * **npm**: upgrade npm to 3.3.12 from v3.3.6 (Rebecca Turner) [#3685](https://github.com/nodejs/node/pull/3685).
- See the release notes for [v3.3.7](https://github.com/npm/npm/releases/tag/v3.3.7), [v3.3.8](https://github.com/npm/npm/releases/tag/v3.3.8), [v3.3.9](https://github.com/npm/npm/releases/tag/v3.3.9), [v3.3.10](https://github.com/npm/npm/releases/tag/v3.3.10), [v3.3.11](https://github.com/npm/npm/releases/tag/v3.3.11), and [v3.3.12](https://github.com/npm/npm/releases/tag/v3.3.12) for more details. * See the release notes for [v3.3.7](https://github.com/npm/npm/releases/tag/v3.3.7), [v3.3.8](https://github.com/npm/npm/releases/tag/v3.3.8), [v3.3.9](https://github.com/npm/npm/releases/tag/v3.3.9), [v3.3.10](https://github.com/npm/npm/releases/tag/v3.3.10), [v3.3.11](https://github.com/npm/npm/releases/tag/v3.3.11), and [v3.3.12](https://github.com/npm/npm/releases/tag/v3.3.12) for more details.
* **repl**: The REPL no longer crashes if the [persistent history](https://nodejs.org/api/repl.html#repl_persistent_history) file cannot be opened (Evan Lucas) [#3630](https://github.com/nodejs/node/pull/3630). * **repl**: The REPL no longer crashes if the [persistent history](https://nodejs.org/api/repl.html#repl_persistent_history) file cannot be opened (Evan Lucas) [#3630](https://github.com/nodejs/node/pull/3630).
* **tls**: The default `sessionIdContext` now uses SHA1 in FIPS mode rather than MD5 (Stefan Budeanu) [#3755](https://github.com/nodejs/node/pull/3755). * **tls**: The default `sessionIdContext` now uses SHA1 in FIPS mode rather than MD5 (Stefan Budeanu) [#3755](https://github.com/nodejs/node/pull/3755).
* **v8**: Added some more useful post-mortem data (Fedor Indutny) [#3779](https://github.com/nodejs/node/pull/3779). * **v8**: Added some more useful post-mortem data (Fedor Indutny) [#3779](https://github.com/nodejs/node/pull/3779).
@ -1572,30 +1572,30 @@ This is an important security release. All Node.js users should consult the secu
* **buffer**: _(Breaking)_ Removed both `'raw'` and `'raws'` encoding types from `Buffer`, these have been deprecated for a long time (Sakthipriyan Vairamani) [#2859](https://github.com/nodejs/node/pull/2859). * **buffer**: _(Breaking)_ Removed both `'raw'` and `'raws'` encoding types from `Buffer`, these have been deprecated for a long time (Sakthipriyan Vairamani) [#2859](https://github.com/nodejs/node/pull/2859).
* **console**: _(Breaking)_ Values reported by `console.time()` now have 3 decimals of accuracy added (Michaël Zasso) [#3166](https://github.com/nodejs/node/pull/3166). * **console**: _(Breaking)_ Values reported by `console.time()` now have 3 decimals of accuracy added (Michaël Zasso) [#3166](https://github.com/nodejs/node/pull/3166).
* **fs**: * **fs**:
- `fs.readFile*()`, `fs.writeFile*()`, and `fs.appendFile*()` now also accept a file descriptor as their first argument (Johannes Wüller) [#3163](https://github.com/nodejs/node/pull/3163). * `fs.readFile*()`, `fs.writeFile*()`, and `fs.appendFile*()` now also accept a file descriptor as their first argument (Johannes Wüller) [#3163](https://github.com/nodejs/node/pull/3163).
- _(Breaking)_ In `fs.readFile()`, if an encoding is specified and the internal `toString()` fails the error is no longer _thrown_ but is passed to the callback (Evan Lucas) [#3485](https://github.com/nodejs/node/pull/3485). * _(Breaking)_ In `fs.readFile()`, if an encoding is specified and the internal `toString()` fails the error is no longer _thrown_ but is passed to the callback (Evan Lucas) [#3485](https://github.com/nodejs/node/pull/3485).
- _(Breaking)_ In `fs.read()` (using the `fs.read(fd, length, position, encoding, callback)` form), if the internal `toString()` fails the error is no longer _thrown_ but is passed to the callback (Evan Lucas) [#3503](https://github.com/nodejs/node/pull/3503). * _(Breaking)_ In `fs.read()` (using the `fs.read(fd, length, position, encoding, callback)` form), if the internal `toString()` fails the error is no longer _thrown_ but is passed to the callback (Evan Lucas) [#3503](https://github.com/nodejs/node/pull/3503).
* **http**: * **http**:
- Fixed a bug where pipelined http requests would stall (Fedor Indutny) [#3342](https://github.com/nodejs/node/pull/3342). * Fixed a bug where pipelined http requests would stall (Fedor Indutny) [#3342](https://github.com/nodejs/node/pull/3342).
- _(Breaking)_ When parsing HTTP, don't add duplicates of the following headers: `Retry-After`, `ETag`, `Last-Modified`, `Server`, `Age`, `Expires`. This is in addition to the following headers which already block duplicates: `Content-Type`, `Content-Length`, `User-Agent`, `Referer`, `Host`, `Authorization`, `Proxy-Authorization`, `If-Modified-Since`, `If-Unmodified-Since`, `From`, `Location`, `Max-Forwards` (James M Snell) [#3090](https://github.com/nodejs/node/pull/3090). * _(Breaking)_ When parsing HTTP, don't add duplicates of the following headers: `Retry-After`, `ETag`, `Last-Modified`, `Server`, `Age`, `Expires`. This is in addition to the following headers which already block duplicates: `Content-Type`, `Content-Length`, `User-Agent`, `Referer`, `Host`, `Authorization`, `Proxy-Authorization`, `If-Modified-Since`, `If-Unmodified-Since`, `From`, `Location`, `Max-Forwards` (James M Snell) [#3090](https://github.com/nodejs/node/pull/3090).
- _(Breaking)_ The `callback` argument to `OutgoingMessage#setTimeout()` must be a function or a `TypeError` is thrown (James M Snell) [#3090](https://github.com/nodejs/node/pull/3090). * _(Breaking)_ The `callback` argument to `OutgoingMessage#setTimeout()` must be a function or a `TypeError` is thrown (James M Snell) [#3090](https://github.com/nodejs/node/pull/3090).
- _(Breaking)_ HTTP methods and header names must now conform to the RFC 2616 "token" rule, a list of allowed characters that excludes control characters and a number of _separator_ characters. Specifically, methods and header names must now match ```/^[a-zA-Z0-9_!#$%&'*+.^`|~-]+$/``` or a `TypeError` will be thrown (James M Snell) [#2526](https://github.com/nodejs/node/pull/2526). * _(Breaking)_ HTTP methods and header names must now conform to the RFC 2616 "token" rule, a list of allowed characters that excludes control characters and a number of _separator_ characters. Specifically, methods and header names must now match ```/^[a-zA-Z0-9_!#$%&'*+.^`|~-]+$/``` or a `TypeError` will be thrown (James M Snell) [#2526](https://github.com/nodejs/node/pull/2526).
* **node**: * **node**:
- _(Breaking)_ Deprecated the `_linklist` module (Rich Trott) [#3078](https://github.com/nodejs/node/pull/3078). * _(Breaking)_ Deprecated the `_linklist` module (Rich Trott) [#3078](https://github.com/nodejs/node/pull/3078).
- _(Breaking)_ Removed `require.paths` and `require.registerExtension()`, both had been previously set to throw `Error` when accessed (Sakthipriyan Vairamani) [#2922](https://github.com/nodejs/node/pull/2922). * _(Breaking)_ Removed `require.paths` and `require.registerExtension()`, both had been previously set to throw `Error` when accessed (Sakthipriyan Vairamani) [#2922](https://github.com/nodejs/node/pull/2922).
* **npm**: Upgraded to version 3.3.6 from 2.14.7, see https://github.com/npm/npm/releases/tag/v3.3.6 for more details. This is a major version bump for npm and it has seen a significant amount of change. Please see the original [npm v3.0.0 release notes](https://github.com/npm/npm/blob/master/CHANGELOG.md#v300-2015-06-25) for a list of major changes (Rebecca Turner) [#3310](https://github.com/nodejs/node/pull/3310). * **npm**: Upgraded to version 3.3.6 from 2.14.7, see https://github.com/npm/npm/releases/tag/v3.3.6 for more details. This is a major version bump for npm and it has seen a significant amount of change. Please see the original [npm v3.0.0 release notes](https://github.com/npm/npm/blob/master/CHANGELOG.md#v300-2015-06-25) for a list of major changes (Rebecca Turner) [#3310](https://github.com/nodejs/node/pull/3310).
* **src**: _(Breaking)_ Bumped `NODE_MODULE_VERSION` to `47` from `46`, this is necessary due to the V8 upgrade. Native add-ons will need to be recompiled (Rod Vagg) [#3400](https://github.com/nodejs/node/pull/3400). * **src**: _(Breaking)_ Bumped `NODE_MODULE_VERSION` to `47` from `46`, this is necessary due to the V8 upgrade. Native add-ons will need to be recompiled (Rod Vagg) [#3400](https://github.com/nodejs/node/pull/3400).
* **timers**: Attempt to reuse the timer handle for `setTimeout().unref()`. This fixes a long-standing known issue where unrefed timers would perviously hold `beforeExit` open (Fedor Indutny) [#3407](https://github.com/nodejs/node/pull/3407). * **timers**: Attempt to reuse the timer handle for `setTimeout().unref()`. This fixes a long-standing known issue where unrefed timers would perviously hold `beforeExit` open (Fedor Indutny) [#3407](https://github.com/nodejs/node/pull/3407).
* **tls**: * **tls**:
- Added ALPN Support (Shigeki Ohtsu) [#2564](https://github.com/nodejs/node/pull/2564). * Added ALPN Support (Shigeki Ohtsu) [#2564](https://github.com/nodejs/node/pull/2564).
- TLS options can now be passed in an object to `createSecurePair()` (Коренберг Марк) [#2441](https://github.com/nodejs/node/pull/2441). * TLS options can now be passed in an object to `createSecurePair()` (Коренберг Марк) [#2441](https://github.com/nodejs/node/pull/2441).
- _(Breaking)_ The default minimum DH key size for `tls.connect()` is now 1024 bits and a warning is shown when DH key size is less than 2048 bits. This a security consideration to prevent "logjam" attacks. A new `minDHSize` TLS option can be used to override the default. (Shigeki Ohtsu) [#1831](https://github.com/nodejs/node/pull/1831). * _(Breaking)_ The default minimum DH key size for `tls.connect()` is now 1024 bits and a warning is shown when DH key size is less than 2048 bits. This a security consideration to prevent "logjam" attacks. A new `minDHSize` TLS option can be used to override the default. (Shigeki Ohtsu) [#1831](https://github.com/nodejs/node/pull/1831).
* **util**: * **util**:
- _(Breaking)_ `util.p()` was deprecated for years, and has now been removed (Wyatt Preul) [#3432](https://github.com/nodejs/node/pull/3432). * _(Breaking)_ `util.p()` was deprecated for years, and has now been removed (Wyatt Preul) [#3432](https://github.com/nodejs/node/pull/3432).
- _(Breaking)_ `util.inherits()` can now work with ES6 classes. This is considered a breaking change because of potential subtle side-effects caused by a change from directly reassigning the prototype of the constructor using `ctor.prototype = Object.create(superCtor.prototype, { constructor: { ... } })` to using `Object.setPrototypeOf(ctor.prototype, superCtor.prototype)` (Michaël Zasso) [#3455](https://github.com/nodejs/node/pull/3455). * _(Breaking)_ `util.inherits()` can now work with ES6 classes. This is considered a breaking change because of potential subtle side-effects caused by a change from directly reassigning the prototype of the constructor using `ctor.prototype = Object.create(superCtor.prototype, { constructor: { ... } })` to using `Object.setPrototypeOf(ctor.prototype, superCtor.prototype)` (Michaël Zasso) [#3455](https://github.com/nodejs/node/pull/3455).
* **v8**: _(Breaking)_ Upgraded to 4.6.85.25 from 4.5.103.35 (Ali Ijaz Sheikh) [#3351](https://github.com/nodejs/node/pull/3351). * **v8**: _(Breaking)_ Upgraded to 4.6.85.25 from 4.5.103.35 (Ali Ijaz Sheikh) [#3351](https://github.com/nodejs/node/pull/3351).
- Implements the spread operator, see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Spread_operator for further information. * Implements the spread operator, see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Spread_operator for further information.
- Implements `new.target`, see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/new.target for further information. * Implements `new.target`, see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/new.target for further information.
* **zlib**: Decompression now throws on truncated input (e.g. unexpected end of file) (Yuval Brik) [#2595](https://github.com/nodejs/node/pull/2595). * **zlib**: Decompression now throws on truncated input (e.g. unexpected end of file) (Yuval Brik) [#2595](https://github.com/nodejs/node/pull/2595).
### Known issues ### Known issues

View File

@ -87,7 +87,7 @@ Node 6 is due to go End-of-Life on 2019-04-30.
### Notable Changes ### Notable Changes
* **http**: * **http**:
- fix error check in `Execute()` (Brian White) [#25939](https://github.com/nodejs/node/pull/25939) * fix error check in `Execute()` (Brian White) [#25939](https://github.com/nodejs/node/pull/25939)
### Commits ### Commits
@ -118,8 +118,8 @@ Fixes for the following CVEs are included in this release:
* **deps**: OpenSSL has been upgraded to 1.0.2r which contains a fix for [CVE-2019-1559](https://www.openssl.org/news/secadv/20190226.txt). Under certain circumstances, a TLS server can be forced to respond differently to a client if a zero-byte record is received with an invalid _padding_ compared to a zero-byte record with an invalid _MAC_. This can be used as the basis of a padding oracle attack to decrypt data. * **deps**: OpenSSL has been upgraded to 1.0.2r which contains a fix for [CVE-2019-1559](https://www.openssl.org/news/secadv/20190226.txt). Under certain circumstances, a TLS server can be forced to respond differently to a client if a zero-byte record is received with an invalid _padding_ compared to a zero-byte record with an invalid _MAC_. This can be used as the basis of a padding oracle attack to decrypt data.
* **http**: * **http**:
- Backport `server.keepAliveTimeout` to prevent keep-alive HTTP and HTTPS connections remaining open and inactive for an extended period of time, leading to a potential Denial of Service (DoS). (CVE-2019-5739 / [Timur Shemsedinov](https://github.com/tshemsedinov), [Matteo Collina](https://twitter.com/matteocollina)) * Backport `server.keepAliveTimeout` to prevent keep-alive HTTP and HTTPS connections remaining open and inactive for an extended period of time, leading to a potential Denial of Service (DoS). (CVE-2019-5739 / [Timur Shemsedinov](https://github.com/tshemsedinov), [Matteo Collina](https://twitter.com/matteocollina))
- Further prevention of "Slowloris" attacks on HTTP and HTTPS connections by consistently applying the receive timeout set by `server.headersTimeout` to connections in keep-alive mode. Reported by Marco Pracucci ([Voxnest](https://voxnest.com)). (CVE-2019-5737 / Matteo Collina) * Further prevention of "Slowloris" attacks on HTTP and HTTPS connections by consistently applying the receive timeout set by `server.headersTimeout` to connections in keep-alive mode. Reported by Marco Pracucci ([Voxnest](https://voxnest.com)). (CVE-2019-5737 / Matteo Collina)
### Commits ### Commits
@ -145,9 +145,9 @@ a missing CLI flag to adjust the max header size of the http parser.
### Notable Changes ### Notable Changes
* **cli**: * **cli**:
- add --max-http-header-size flag (cjihrig) [#24811](https://github.com/nodejs/node/pull/24811) * add --max-http-header-size flag (cjihrig) [#24811](https://github.com/nodejs/node/pull/24811)
* **http**: * **http**:
- add maxHeaderSize property (cjihrig) [#24860](https://github.com/nodejs/node/pull/24860) * add maxHeaderSize property (cjihrig) [#24860](https://github.com/nodejs/node/pull/24860)
### Commits ### Commits
@ -264,7 +264,7 @@ Fixes for the following CVEs are included in this release:
### Notable Changes ### Notable Changes
* **n-api**: * **n-api**:
- n-api has been backported to v6.x. It is being landed as an experimental interface, * n-api has been backported to v6.x. It is being landed as an experimental interface,
and as such is landing in a Semver-Patch release. (Gabriel Schulhof) [#19447](https://github.com/nodejs/node/pull/19447) and as such is landing in a Semver-Patch release. (Gabriel Schulhof) [#19447](https://github.com/nodejs/node/pull/19447)
### Commits ### Commits
@ -549,7 +549,7 @@ Fixes for the following CVEs are included in this release:
### Notable Changes ### Notable Changes
* **http, tls**: * **http, tls**:
- better support for IPv6 addresses (Mattias Holmlund) [#14772](https://github.com/nodejs/node/pull/14772) * better support for IPv6 addresses (Mattias Holmlund) [#14772](https://github.com/nodejs/node/pull/14772)
### Commits ### Commits
@ -586,39 +586,39 @@ This LTS release comes with 112 commits, 17 of which are considered Semver-Minor
### Notable Changes ### Notable Changes
* **console**: * **console**:
- added console.count() and console.clear() (James M Snell) [#12678](https://github.com/nodejs/node/pull/12678) * added console.count() and console.clear() (James M Snell) [#12678](https://github.com/nodejs/node/pull/12678)
* **crypto**: * **crypto**:
- expose ECDH class (Bryan English) [#8188](https://github.com/nodejs/node/pull/8188) * expose ECDH class (Bryan English) [#8188](https://github.com/nodejs/node/pull/8188)
- added cypto.randomFill() and crypto.randomFillSync() (Evan Lucas) [#10209](https://github.com/nodejs/node/pull/10209) * added cypto.randomFill() and crypto.randomFillSync() (Evan Lucas) [#10209](https://github.com/nodejs/node/pull/10209)
- warn on invalid authentication tag length (Tobias Nießen) [#17566](https://github.com/nodejs/node/pull/17566) * warn on invalid authentication tag length (Tobias Nießen) [#17566](https://github.com/nodejs/node/pull/17566)
* **deps**: * **deps**:
- upgrade libuv to 1.16.1 (cjihrig) [#16835](https://github.com/nodejs/node/pull/16835) * upgrade libuv to 1.16.1 (cjihrig) [#16835](https://github.com/nodejs/node/pull/16835)
* **dgram**: * **dgram**:
- added socket.setMulticastInterface() (Will Young) [#7855](https://github.com/nodejs/node/pull/7855) * added socket.setMulticastInterface() (Will Young) [#7855](https://github.com/nodejs/node/pull/7855)
* **http**: * **http**:
- add agent.keepSocketAlive and agent.reuseSocket as to allow overridable keep-alive behavior of `Agent` (Fedor Indutny) [#13005](https://github.com/nodejs/node/pull/13005) * add agent.keepSocketAlive and agent.reuseSocket as to allow overridable keep-alive behavior of `Agent` (Fedor Indutny) [#13005](https://github.com/nodejs/node/pull/13005)
* **lib**: * **lib**:
- return this from net.Socket.end() (Sam Roberts) [#13481](https://github.com/nodejs/node/pull/13481) * return this from net.Socket.end() (Sam Roberts) [#13481](https://github.com/nodejs/node/pull/13481)
* **module**: * **module**:
- add builtinModules api that provides list of all builtin modules in Node (Jon Moss) [#16386](https://github.com/nodejs/node/pull/16386) * add builtinModules api that provides list of all builtin modules in Node (Jon Moss) [#16386](https://github.com/nodejs/node/pull/16386)
* **net**: * **net**:
- return this from getConnections() (Sam Roberts) [#13553](https://github.com/nodejs/node/pull/13553) * return this from getConnections() (Sam Roberts) [#13553](https://github.com/nodejs/node/pull/13553)
* **promises**: * **promises**:
- more robust stringification for unhandled rejections (Timothy Gu) [#13784](https://github.com/nodejs/node/pull/13784) * more robust stringification for unhandled rejections (Timothy Gu) [#13784](https://github.com/nodejs/node/pull/13784)
* **repl**: * **repl**:
- improve require() autocompletion (Alexey Orlenko) [#14409](https://github.com/nodejs/node/pull/14409) * improve require() autocompletion (Alexey Orlenko) [#14409](https://github.com/nodejs/node/pull/14409)
* **src**: * **src**:
- add openssl-system-ca-path configure option (Daniel Bevenius) [#16790](https://github.com/nodejs/node/pull/16790) * add openssl-system-ca-path configure option (Daniel Bevenius) [#16790](https://github.com/nodejs/node/pull/16790)
- add --use-bundled-ca --use-openssl-ca check (Daniel Bevenius) [#12087](https://github.com/nodejs/node/pull/12087) * add --use-bundled-ca --use-openssl-ca check (Daniel Bevenius) [#12087](https://github.com/nodejs/node/pull/12087)
- add process.ppid (cjihrig) [#16839](https://github.com/nodejs/node/pull/16839) * add process.ppid (cjihrig) [#16839](https://github.com/nodejs/node/pull/16839)
* **tls**: * **tls**:
- accept `lookup` option for `tls.connect()` (Fedor Indutny) [#12839](https://github.com/nodejs/node/pull/12839) * accept `lookup` option for `tls.connect()` (Fedor Indutny) [#12839](https://github.com/nodejs/node/pull/12839)
* **tools, build**: * **tools, build**:
- a new macOS installer! (JP Wesselink) [#15179](https://github.com/nodejs/node/pull/15179) * a new macOS installer! (JP Wesselink) [#15179](https://github.com/nodejs/node/pull/15179)
* **url**: * **url**:
- WHATWG URL api support (James M Snell) [#7448](https://github.com/nodejs/node/pull/7448) * WHATWG URL api support (James M Snell) [#7448](https://github.com/nodejs/node/pull/7448)
* **util**: * **util**:
- add %i and %f formatting specifiers (Roman Reiss) [#10308](https://github.com/nodejs/node/pull/10308) * add %i and %f formatting specifiers (Roman Reiss) [#10308](https://github.com/nodejs/node/pull/10308)
### Commits ### Commits
@ -744,7 +744,7 @@ This LTS release comes with 115 commits. This includes 52 which are test related
### Notable Changes ### Notable Changes
* **build**: * **build**:
- configure can now be run from any directory (Gibson Fahnestock) [#17321](https://github.com/nodejs/node/pull/17321) * configure can now be run from any directory (Gibson Fahnestock) [#17321](https://github.com/nodejs/node/pull/17321)
### Commits ### Commits
@ -898,11 +898,11 @@ This LTS release comes with 263 commits. This includes 173 which are test relate
### Notable Changes ### Notable Changes
* **build**: * **build**:
- fix npm install with --shared (Ben Noordhuis) [#16438](https://github.com/nodejs/node/pull/16438) * fix npm install with --shared (Ben Noordhuis) [#16438](https://github.com/nodejs/node/pull/16438)
* **build**: * **build**:
- building with python 3 is now supported (Emily Marigold Klassen) [#16058](https://github.com/nodejs/node/pull/16058) * building with python 3 is now supported (Emily Marigold Klassen) [#16058](https://github.com/nodejs/node/pull/16058)
* **src**: * **src**:
- v8 options can be specified with either '\_' or '-' in NODE_OPTIONS (Sam Roberts) [#14093](https://github.com/nodejs/node/pull/14093) * v8 options can be specified with either '\_' or '-' in NODE_OPTIONS (Sam Roberts) [#14093](https://github.com/nodejs/node/pull/14093)
### Commits ### Commits
@ -1181,28 +1181,28 @@ This release includes a security update to openssl that has been deemed low seve
### Notable Changes ### Notable Changes
* **assert**: * **assert**:
- assert.fail() can now take one or two arguments (Rich Trott) [#12293](https://github.com/nodejs/node/pull/12293) * assert.fail() can now take one or two arguments (Rich Trott) [#12293](https://github.com/nodejs/node/pull/12293)
* **crypto**: * **crypto**:
- add sign/verify support for RSASSA-PSS (Tobias Nießen) [#11705](https://github.com/nodejs/node/pull/11705) * add sign/verify support for RSASSA-PSS (Tobias Nießen) [#11705](https://github.com/nodejs/node/pull/11705)
* **deps**: * **deps**:
- upgrade openssl sources to 1.0.2m (Shigeki Ohtsu) [#16691](https://github.com/nodejs/node/pull/16691) * upgrade openssl sources to 1.0.2m (Shigeki Ohtsu) [#16691](https://github.com/nodejs/node/pull/16691)
- upgrade libuv to 1.15.0 (cjihrig) [#15745](https://github.com/nodejs/node/pull/15745) * upgrade libuv to 1.15.0 (cjihrig) [#15745](https://github.com/nodejs/node/pull/15745)
- upgrade libuv to 1.14.1 (cjihrig) [#14866](https://github.com/nodejs/node/pull/14866) * upgrade libuv to 1.14.1 (cjihrig) [#14866](https://github.com/nodejs/node/pull/14866)
- upgrade libuv to 1.13.1 (cjihrig) [#14117](https://github.com/nodejs/node/pull/14117) * upgrade libuv to 1.13.1 (cjihrig) [#14117](https://github.com/nodejs/node/pull/14117)
- upgrade libuv to 1.12.0 (cjihrig) [#13306](https://github.com/nodejs/node/pull/13306) * upgrade libuv to 1.12.0 (cjihrig) [#13306](https://github.com/nodejs/node/pull/13306)
* **fs**: * **fs**:
- Add support for fs.write/fs.writeSync(fd, buffer, cb) and fs.write/fs.writeSync(fd, buffer, offset, cb) as documented (Andreas Lind) [#7856](https://github.com/nodejs/node/pull/7856) * Add support for fs.write/fs.writeSync(fd, buffer, cb) and fs.write/fs.writeSync(fd, buffer, offset, cb) as documented (Andreas Lind) [#7856](https://github.com/nodejs/node/pull/7856)
* **inspector**: * **inspector**:
- enable --inspect-brk (Refael Ackermann) [#12615](https://github.com/nodejs/node/pull/12615) * enable --inspect-brk (Refael Ackermann) [#12615](https://github.com/nodejs/node/pull/12615)
* **process**: * **process**:
- add --redirect-warnings command line argument (James M Snell) [#10116](https://github.com/nodejs/node/pull/10116) * add --redirect-warnings command line argument (James M Snell) [#10116](https://github.com/nodejs/node/pull/10116)
* **src**: * **src**:
- allow CLI args in env with NODE_OPTIONS (Sam Roberts) [#12028](https://github.com/nodejs/node/pull/12028) * allow CLI args in env with NODE_OPTIONS (Sam Roberts) [#12028](https://github.com/nodejs/node/pull/12028)
- --abort-on-uncaught-exception in NODE_OPTIONS (Sam Roberts) [#13932](https://github.com/nodejs/node/pull/13932) * --abort-on-uncaught-exception in NODE_OPTIONS (Sam Roberts) [#13932](https://github.com/nodejs/node/pull/13932)
- allow --tls-cipher-list in NODE_OPTIONS (Sam Roberts) [#13172](https://github.com/nodejs/node/pull/13172) * allow --tls-cipher-list in NODE_OPTIONS (Sam Roberts) [#13172](https://github.com/nodejs/node/pull/13172)
- use SafeGetenv() for NODE_REDIRECT_WARNINGS (Sam Roberts) [#12677](https://github.com/nodejs/node/pull/12677) * use SafeGetenv() for NODE_REDIRECT_WARNINGS (Sam Roberts) [#12677](https://github.com/nodejs/node/pull/12677)
* **test**: * **test**:
- remove common.fail() (Rich Trott) [#12293](https://github.com/nodejs/node/pull/12293) * remove common.fail() (Rich Trott) [#12293](https://github.com/nodejs/node/pull/12293)
### Commits ### Commits
@ -1342,7 +1342,7 @@ This is a security release. All Node.js users should consult the security releas
### Notable Changes ### Notable Changes
* **zlib**: * **zlib**:
- CVE-2017-14919 - In zlib v1.2.9, a change was made that causes an error to be raised when a raw deflate stream is initialized with windowBits set to 8. On some versions this crashes Node and you cannot recover from it, while on some versions it throws an exception. Node.js will now gracefully set windowBits to 9 replicating the legacy behavior to avoid a DOS vector. [nodejs-private/node-private#95](https://github.com/nodejs-private/node-private/pull/95) * CVE-2017-14919 - In zlib v1.2.9, a change was made that causes an error to be raised when a raw deflate stream is initialized with windowBits set to 8. On some versions this crashes Node and you cannot recover from it, while on some versions it throws an exception. Node.js will now gracefully set windowBits to 9 replicating the legacy behavior to avoid a DOS vector. [nodejs-private/node-private#95](https://github.com/nodejs-private/node-private/pull/95)
### Commits ### Commits
@ -1357,7 +1357,7 @@ This LTS release comes with 91 commits. This includes 29 which are test related,
### Notable Changes ### Notable Changes
* **net**: * **net**:
- support passing undefined to listen() to match behavior in v4.x and v8.x (Sam Roberts) [#14234](https://github.com/nodejs/node/pull/14234) * support passing undefined to listen() to match behavior in v4.x and v8.x (Sam Roberts) [#14234](https://github.com/nodejs/node/pull/14234)
### Commits ### Commits
@ -1462,13 +1462,13 @@ This LTS release comes with 152 commits. This includes 75 which are test related
### Notable Changes ### Notable Changes
* **build**: * **build**:
- Codesigning is fixed on macOS (Evan Lucas) [#14179](https://github.com/nodejs/node/pull/14179) * Codesigning is fixed on macOS (Evan Lucas) [#14179](https://github.com/nodejs/node/pull/14179)
* **deps**: * **deps**:
- Snapshots are turned back on!!! (Yang Guo) [#14385](https://github.com/nodejs/node/pull/14385) * Snapshots are turned back on!!! (Yang Guo) [#14385](https://github.com/nodejs/node/pull/14385)
* **path**: * **path**:
- win32 volume-relative paths are working again! (Timothy Gu) [#14440](https://github.com/nodejs/node/pull/14440) * win32 volume-relative paths are working again! (Timothy Gu) [#14440](https://github.com/nodejs/node/pull/14440)
* **tools**: * **tools**:
- v6.x can now build with ICU 59 (Steven R. Loomis) [#12078](https://github.com/nodejs/node/pull/12078) * v6.x can now build with ICU 59 (Steven R. Loomis) [#12078](https://github.com/nodejs/node/pull/12078)
### Commits ### Commits
@ -1634,18 +1634,18 @@ This LTS release comes with 221 commits. This includes 80 which are test related
### Notable Changes ### Notable Changes
* **configure**: * **configure**:
- add mips64el to valid_arch (Aditya Anand) [#13620](https://github.com/nodejs/node/pull/13620) * add mips64el to valid_arch (Aditya Anand) [#13620](https://github.com/nodejs/node/pull/13620)
* **crypto**: * **crypto**:
- Updated root certificates based on [NSS 3.30](https://developer.mozilla.org/en-US/docs/Mozilla/Projects/NSS/NSS_3.30_release_notes) (Ben Noordhuis) * Updated root certificates based on [NSS 3.30](https://developer.mozilla.org/en-US/docs/Mozilla/Projects/NSS/NSS_3.30_release_notes) (Ben Noordhuis)
- [#13279](https://github.com/nodejs/node/pull/13279) * [#13279](https://github.com/nodejs/node/pull/13279)
- [#12402](https://github.com/nodejs/node/pull/12402) * [#12402](https://github.com/nodejs/node/pull/12402)
* **deps**: * **deps**:
- upgrade OpenSSL to version 1.0.2.l (Shigeki Ohtsu) [#12913](https://github.com/nodejs/node/pull/12913) * upgrade OpenSSL to version 1.0.2.l (Shigeki Ohtsu) [#12913](https://github.com/nodejs/node/pull/12913)
* **http**: * **http**:
- parse errors are now reported when NODE_DEBUG=http (Sam Roberts) [#13206](https://github.com/nodejs/node/pull/13206) * parse errors are now reported when NODE_DEBUG=http (Sam Roberts) [#13206](https://github.com/nodejs/node/pull/13206)
- Agent construction can now be envoked without `new` (cjihrig) [#12927](https://github.com/nodejs/node/pull/12927) * Agent construction can now be envoked without `new` (cjihrig) [#12927](https://github.com/nodejs/node/pull/12927)
* **zlib**: * **zlib**:
- node will now throw an Error when zlib rejects the value of windowBits, instead of crashing (Alexey Orlenko) [#13098](https://github.com/nodejs/node/pull/13098) * node will now throw an Error when zlib rejects the value of windowBits, instead of crashing (Alexey Orlenko) [#13098](https://github.com/nodejs/node/pull/13098)
### Commits ### Commits
@ -1879,9 +1879,9 @@ This is a security release. All Node.js users should consult the security releas
### Notable Changes ### Notable Changes
* **build**: * **build**:
- Disable V8 snapshots - The hashseed embedded in the snapshot is currently the same for all runs of the binary. This opens node up to collision attacks which could result in a Denial of Service. We have temporarily disabled snapshots until a more robust solution is found (Ali Ijaz Sheikh) * Disable V8 snapshots - The hashseed embedded in the snapshot is currently the same for all runs of the binary. This opens node up to collision attacks which could result in a Denial of Service. We have temporarily disabled snapshots until a more robust solution is found (Ali Ijaz Sheikh)
* **deps**: * **deps**:
- CVE-2017-1000381 - The c-ares function ares_parse_naptr_reply(), which is used for parsing NAPTR responses, could be triggered to read memory outside of the given input buffer if the passed in DNS response packet was crafted in a particular way. This patch checks that there is enough data for the required elements of an NAPTR record (2 int16, 3 bytes for string lengths) before processing a record. (David Drysdale) * CVE-2017-1000381 - The c-ares function ares_parse_naptr_reply(), which is used for parsing NAPTR responses, could be triggered to read memory outside of the given input buffer if the passed in DNS response packet was crafted in a particular way. This patch checks that there is enough data for the required elements of an NAPTR record (2 int16, 3 bytes for string lengths) before processing a record. (David Drysdale)
### Commits ### Commits
@ -1899,9 +1899,9 @@ This LTS release comes with 126 commits. This includes 40 which are test related
### Notable Changes ### Notable Changes
* **build**: * **build**:
- support for building mips64el (nanxiongchao) [#10991](https://github.com/nodejs/node/pull/10991) * support for building mips64el (nanxiongchao) [#10991](https://github.com/nodejs/node/pull/10991)
* **cluster**: * **cluster**:
- disconnect() now returns a reference to the disconnected worker. (Sean Villars) [#10019](https://github.com/nodejs/node/pull/10019) * disconnect() now returns a reference to the disconnected worker. (Sean Villars) [#10019](https://github.com/nodejs/node/pull/10019)
* **crypto**: * **crypto**:
* ability to select cert store at runtime (Adam Majer) [#8334](https://github.com/nodejs/node/pull/8334) * ability to select cert store at runtime (Adam Majer) [#8334](https://github.com/nodejs/node/pull/8334)
* Use system CAs instead of using bundled ones (Adam Majer) [#8334](https://github.com/nodejs/node/pull/8334) * Use system CAs instead of using bundled ones (Adam Majer) [#8334](https://github.com/nodejs/node/pull/8334)
@ -1918,7 +1918,7 @@ This LTS release comes with 126 commits. This includes 40 which are test related
* **process**: * **process**:
* add NODE_NO_WARNINGS environment variable (cjihrig) [#10842](https://github.com/nodejs/node/pull/10842) * add NODE_NO_WARNINGS environment variable (cjihrig) [#10842](https://github.com/nodejs/node/pull/10842)
* **readline**: * **readline**:
- add option to stop duplicates in history (Danny Nemer) [#2982](https://github.com/nodejs/node/pull/2982) * add option to stop duplicates in history (Danny Nemer) [#2982](https://github.com/nodejs/node/pull/2982)
* **src**: * **src**:
* support "--" after "-e" as end-of-options (John Barboza) [#10651](https://github.com/nodejs/node/pull/10651) * support "--" after "-e" as end-of-options (John Barboza) [#10651](https://github.com/nodejs/node/pull/10651)
* **tls**: * **tls**:
@ -2060,11 +2060,11 @@ This LTS release comes with 126 commits. This includes 40 which are test related
### Notable Changes ### Notable Changes
* **module**: * **module**:
- The [module loading global fallback](https://nodejs.org/dist/latest-v4.x/docs/api/modules.html#modules_loading_from_the_global_folders) to the Node executable's directory now works correctly on Windows. (Richard Lau) [#9283](https://github.com/nodejs/node/pull/9283) * The [module loading global fallback](https://nodejs.org/dist/latest-v4.x/docs/api/modules.html#modules_loading_from_the_global_folders) to the Node executable's directory now works correctly on Windows. (Richard Lau) [#9283](https://github.com/nodejs/node/pull/9283)
* **src**: * **src**:
- fix base64 decoding in rare edgecase (Nikolai Vavilov) [#11995](https://github.com/nodejs/node/pull/11995) * fix base64 decoding in rare edgecase (Nikolai Vavilov) [#11995](https://github.com/nodejs/node/pull/11995)
* **tls**: * **tls**:
- fix rare segmentation faults when using TLS * fix rare segmentation faults when using TLS
* (Trevor Norris) [#11947](https://github.com/nodejs/node/pull/11947) * (Trevor Norris) [#11947](https://github.com/nodejs/node/pull/11947)
* (Ben Noordhuis) [#11898](https://github.com/nodejs/node/pull/11898) * (Ben Noordhuis) [#11898](https://github.com/nodejs/node/pull/11898)
* (jBarz) [#11776](https://github.com/nodejs/node/pull/11776) * (jBarz) [#11776](https://github.com/nodejs/node/pull/11776)
@ -2239,12 +2239,12 @@ that were present in zlib 1.2.8.
### Notable changes ### Notable changes
* **crypto**: * **crypto**:
- fix memory leak if certificate is revoked (Tom Atkinson) [#12089](https://github.com/nodejs/node/pull/12089) * fix memory leak if certificate is revoked (Tom Atkinson) [#12089](https://github.com/nodejs/node/pull/12089)
* **deps**: * **deps**:
- upgrade zlib to 1.2.11 (Sam Roberts) [#10980](https://github.com/nodejs/node/pull/10980) * upgrade zlib to 1.2.11 (Sam Roberts) [#10980](https://github.com/nodejs/node/pull/10980)
- backport V8 fixes for spread syntax regression causing segfaults (Michaël Zasso) [#12037](https://github.com/nodejs/node/pull/12037) * backport V8 fixes for spread syntax regression causing segfaults (Michaël Zasso) [#12037](https://github.com/nodejs/node/pull/12037)
* **repl**: * **repl**:
- Revert commit that broke REPL display on Windows (Myles Borins) [#12123](https://github.com/nodejs/node/pull/12123) * Revert commit that broke REPL display on Windows (Myles Borins) [#12123](https://github.com/nodejs/node/pull/12123)
### Commits ### Commits
@ -2265,21 +2265,21 @@ This LTS release comes with 297 commits. This includes 124 which are test relate
### Notable changes ### Notable changes
* **performance**: The performance of several APIs has been improved. * **performance**: The performance of several APIs has been improved.
- `Buffer.compare()` is up to 35% faster on average. (Brian White) [#10927](https://github.com/nodejs/node/pull/10927) * `Buffer.compare()` is up to 35% faster on average. (Brian White) [#10927](https://github.com/nodejs/node/pull/10927)
- `buffer.toJSON()` is up to 2859% faster on average. (Brian White) [#10895](https://github.com/nodejs/node/pull/10895) * `buffer.toJSON()` is up to 2859% faster on average. (Brian White) [#10895](https://github.com/nodejs/node/pull/10895)
- `fs.*statSync()` functions are now up to 9.3% faster on average. (Brian White) [#11522](https://github.com/nodejs/node/pull/11522) * `fs.*statSync()` functions are now up to 9.3% faster on average. (Brian White) [#11522](https://github.com/nodejs/node/pull/11522)
- `os.loadavg` is up to 151% faster. (Brian White) [#11516](https://github.com/nodejs/node/pull/11516) * `os.loadavg` is up to 151% faster. (Brian White) [#11516](https://github.com/nodejs/node/pull/11516)
- `process.memoryUsage()` is up to 34% faster. (Brian White) [#11497](https://github.com/nodejs/node/pull/11497) * `process.memoryUsage()` is up to 34% faster. (Brian White) [#11497](https://github.com/nodejs/node/pull/11497)
- `querystring.unescape()` for `Buffer`s is 15% faster on average. (Brian White) [#10837](https://github.com/nodejs/node/pull/10837) * `querystring.unescape()` for `Buffer`s is 15% faster on average. (Brian White) [#10837](https://github.com/nodejs/node/pull/10837)
- `querystring.stringify()` is up to 7.8% faster on average. (Brian White) [#10852](https://github.com/nodejs/node/pull/10852) * `querystring.stringify()` is up to 7.8% faster on average. (Brian White) [#10852](https://github.com/nodejs/node/pull/10852)
- `querystring.parse()` is up to 21% faster on average. (Brian White) [#10874](https://github.com/nodejs/node/pull/10874) * `querystring.parse()` is up to 21% faster on average. (Brian White) [#10874](https://github.com/nodejs/node/pull/10874)
* **IPC**: Batched writes have been enabled for process IPC on platforms that support Unix Domain Sockets. (Alexey Orlenko) [#10677](https://github.com/nodejs/node/pull/10677) * **IPC**: Batched writes have been enabled for process IPC on platforms that support Unix Domain Sockets. (Alexey Orlenko) [#10677](https://github.com/nodejs/node/pull/10677)
- Performance gains may be up to 40% for some workloads. * Performance gains may be up to 40% for some workloads.
* **child_process**: `spawnSync` now returns a null `status` when child is terminated by a signal. (cjihrig) [#11288](https://github.com/nodejs/node/pull/11288) * **child_process**: `spawnSync` now returns a null `status` when child is terminated by a signal. (cjihrig) [#11288](https://github.com/nodejs/node/pull/11288)
- This fixes the behavior to act like `spawn()` does. * This fixes the behavior to act like `spawn()` does.
* **http**: * **http**:
- Control characters are now always rejected when using `http.request()`. (Ben Noordhuis) [#8923](https://github.com/nodejs/node/pull/8923) * Control characters are now always rejected when using `http.request()`. (Ben Noordhuis) [#8923](https://github.com/nodejs/node/pull/8923)
- Debug messages have been added for cases when headers contain invalid values. (Evan Lucas) [#9195](https://github.com/nodejs/node/pull/9195) * Debug messages have been added for cases when headers contain invalid values. (Evan Lucas) [#9195](https://github.com/nodejs/node/pull/9195)
* **node**: Heap statistics now support values larger than 4GB. (Ben Noordhuis) [#10186](https://github.com/nodejs/node/pull/10186) * **node**: Heap statistics now support values larger than 4GB. (Ben Noordhuis) [#10186](https://github.com/nodejs/node/pull/10186)
* **timers**: Timer callbacks now always maintain order when interacting with domain error handling. (John Barboza) [#10522](https://github.com/nodejs/node/pull/10522) * **timers**: Timer callbacks now always maintain order when interacting with domain error handling. (John Barboza) [#10522](https://github.com/nodejs/node/pull/10522)
@ -2826,14 +2826,14 @@ are updates to dependencies.
* **build**: shared library support is now working for AIX builds (Stewart Addison) [#9675](https://github.com/nodejs/node/pull/9675) * **build**: shared library support is now working for AIX builds (Stewart Addison) [#9675](https://github.com/nodejs/node/pull/9675)
* **deps**: * **deps**:
- *npm*: upgrade npm to 3.10.10 (Rebecca Turner) [#9847](https://github.com/nodejs/node/pull/9847) * *npm*: upgrade npm to 3.10.10 (Rebecca Turner) [#9847](https://github.com/nodejs/node/pull/9847)
- *V8*: Destructuring of arrow function arguments via computed property no longer throws (Michaël Zasso) [#10386](https://github.com/nodejs/node/pull/10386) * *V8*: Destructuring of arrow function arguments via computed property no longer throws (Michaël Zasso) [#10386](https://github.com/nodejs/node/pull/10386)
* **inspector**: /json/version returns object, not an object wrapped in an array (Ben Noordhuis) [#9762](https://github.com/nodejs/node/pull/9762) * **inspector**: /json/version returns object, not an object wrapped in an array (Ben Noordhuis) [#9762](https://github.com/nodejs/node/pull/9762)
* **module**: using --debug-brk and --eval together now works as expected (Kelvin Jin) [#8876](https://github.com/nodejs/node/pull/8876) * **module**: using --debug-brk and --eval together now works as expected (Kelvin Jin) [#8876](https://github.com/nodejs/node/pull/8876)
* **process**: improve performance of nextTick up to 20% (Evan Lucas) [#8932](https://github.com/nodejs/node/pull/8932) * **process**: improve performance of nextTick up to 20% (Evan Lucas) [#8932](https://github.com/nodejs/node/pull/8932)
* **repl**: * **repl**:
- the division operator will no longer be accidentally parsed as regex (Teddy Katz) [#10103](https://github.com/nodejs/node/pull/10103) * the division operator will no longer be accidentally parsed as regex (Teddy Katz) [#10103](https://github.com/nodejs/node/pull/10103)
- improved support for generator functions (Teddy Katz) [#9852](https://github.com/nodejs/node/pull/9852) * improved support for generator functions (Teddy Katz) [#9852](https://github.com/nodejs/node/pull/9852)
* **timers**: Re canceling a cancelled timers will no longer throw (Jeremiah Senkpiel) [#9685](https://github.com/nodejs/node/pull/9685) * **timers**: Re canceling a cancelled timers will no longer throw (Jeremiah Senkpiel) [#9685](https://github.com/nodejs/node/pull/9685)
### Commits ### Commits
@ -3162,10 +3162,10 @@ commits which are updates to dependencies.
* **buffer**: coerce slice parameters consistently (Sakthipriyan Vairamani (thefourtheye)) [#9101](https://github.com/nodejs/node/pull/9101) * **buffer**: coerce slice parameters consistently (Sakthipriyan Vairamani (thefourtheye)) [#9101](https://github.com/nodejs/node/pull/9101)
* **deps**: * **deps**:
- *npm*: upgrade npm to 3.10.9 (Kat Marchán) [#9286](https://github.com/nodejs/node/pull/9286) * *npm*: upgrade npm to 3.10.9 (Kat Marchán) [#9286](https://github.com/nodejs/node/pull/9286)
- *V8*: Various fixes to destructuring edge cases * *V8*: Various fixes to destructuring edge cases
- cherry-pick 3c39bac from V8 upstream (Cristian Cavalli) [#9138](https://github.com/nodejs/node/pull/9138) * cherry-pick 3c39bac from V8 upstream (Cristian Cavalli) [#9138](https://github.com/nodejs/node/pull/9138)
- cherry pick 7166503 from upstream v8 (Cristian Cavalli) [#9173](https://github.com/nodejs/node/pull/9173) * cherry pick 7166503 from upstream v8 (Cristian Cavalli) [#9173](https://github.com/nodejs/node/pull/9173)
* **gtest**: the test reporter now outputs tap comments as yamlish (Johan Bergström) [#9262](https://github.com/nodejs/node/pull/9262) * **gtest**: the test reporter now outputs tap comments as yamlish (Johan Bergström) [#9262](https://github.com/nodejs/node/pull/9262)
* **inspector**: inspector now prompts user to use 127.0.0.1 rather than localhost (Eugene Ostroukhov) [#9451](https://github.com/nodejs/node/pull/9451) * **inspector**: inspector now prompts user to use 127.0.0.1 rather than localhost (Eugene Ostroukhov) [#9451](https://github.com/nodejs/node/pull/9451)
* **tls**: fix memory leak when writing data to TLSWrap instance during handshake (Fedor Indutny) [#9586](https://github.com/nodejs/node/pull/9586) * **tls**: fix memory leak when writing data to TLSWrap instance during handshake (Fedor Indutny) [#9586](https://github.com/nodejs/node/pull/9586)
@ -3378,9 +3378,9 @@ This is also a security release. All Node.js users should consult the security r
### Notable changes ### Notable changes
* **fs**: * **fs**:
- `SyncWriteStream` now inherits from `Stream.Writable`. (Anna Henningsen) [#8830](https://github.com/nodejs/node/pull/8830) * `SyncWriteStream` now inherits from `Stream.Writable`. (Anna Henningsen) [#8830](https://github.com/nodejs/node/pull/8830)
- Practically, this means that when stdio is piped to a file, stdout and stderr will still be `Writable` streams. * Practically, this means that when stdio is piped to a file, stdout and stderr will still be `Writable` streams.
- `fs.existsSync()` has been undeprecated. `fs.exists()` remains deprecated. (Dan Fabulich) [#8364](https://github.com/nodejs/node/pull/8364) * `fs.existsSync()` has been undeprecated. `fs.exists()` remains deprecated. (Dan Fabulich) [#8364](https://github.com/nodejs/node/pull/8364)
* **http**: `http.request()` now accepts a `timeout` option. (Rene Weber) [#8101](https://github.com/nodejs/node/pull/8101) * **http**: `http.request()` now accepts a `timeout` option. (Rene Weber) [#8101](https://github.com/nodejs/node/pull/8101)
* **module**: The module loader now maintains its own realpath cache. (Anna Henningsen) [#8100](https://github.com/nodejs/node/pull/8100) * **module**: The module loader now maintains its own realpath cache. (Anna Henningsen) [#8100](https://github.com/nodejs/node/pull/8100)
* **npm**: Upgraded to 3.10.8 (Kat Marchán) [#8706](https://github.com/nodejs/node/pull/8706) * **npm**: Upgraded to 3.10.8 (Kat Marchán) [#8706](https://github.com/nodejs/node/pull/8706)
@ -3615,9 +3615,9 @@ This is a security release. All Node.js users should consult the security releas
Semver Minor: Semver Minor:
* **openssl**: * **openssl**:
- Upgrade to 1.0.2i, fixes a number of defects impacting Node.js: CVE-2016-6304 ("OCSP Status Request extension unbounded memory growth", high severity), CVE-2016-2183, CVE-2016-2178 and CVE-2016-6306. (Shigeki Ohtsu) [#8714](https://github.com/nodejs/node/pull/8714) * Upgrade to 1.0.2i, fixes a number of defects impacting Node.js: CVE-2016-6304 ("OCSP Status Request extension unbounded memory growth", high severity), CVE-2016-2183, CVE-2016-2178 and CVE-2016-6306. (Shigeki Ohtsu) [#8714](https://github.com/nodejs/node/pull/8714)
- Upgrade to 1.0.2j, fixes a defect included in 1.0.2i resulting in a crash when using CRLs, CVE-2016-7052. (Shigeki Ohtsu) [#8786](https://github.com/nodejs/node/pull/8786) * Upgrade to 1.0.2j, fixes a defect included in 1.0.2i resulting in a crash when using CRLs, CVE-2016-7052. (Shigeki Ohtsu) [#8786](https://github.com/nodejs/node/pull/8786)
- Remove support for loading dynamic third-party engine modules. An attacker may be able to hide malicious code to be inserted into Node.js at runtime by masquerading as one of the dynamic engine modules. Originally reported by Ahmed Zaki (Skype). (Ben Noordhuis) [nodejs/node-private#73](https://github.com/nodejs/node-private/pull/73) * Remove support for loading dynamic third-party engine modules. An attacker may be able to hide malicious code to be inserted into Node.js at runtime by masquerading as one of the dynamic engine modules. Originally reported by Ahmed Zaki (Skype). (Ben Noordhuis) [nodejs/node-private#73](https://github.com/nodejs/node-private/pull/73)
* **http**: CVE-2016-5325 - Properly validate for allowable characters in the `reason` argument in `ServerResponse#writeHead()`. Fixes a possible response splitting attack vector. This introduces a new case where `throw` may occur when configuring HTTP responses, users should already be adopting try/catch here. Originally reported independently by Evan Lucas and Romain Gaucher. (Evan Lucas) [nodejs/node-private#60](https://github.com/nodejs/node-private/pull/60) * **http**: CVE-2016-5325 - Properly validate for allowable characters in the `reason` argument in `ServerResponse#writeHead()`. Fixes a possible response splitting attack vector. This introduces a new case where `throw` may occur when configuring HTTP responses, users should already be adopting try/catch here. Originally reported independently by Evan Lucas and Romain Gaucher. (Evan Lucas) [nodejs/node-private#60](https://github.com/nodejs/node-private/pull/60)
Semver Patch: Semver Patch:
@ -3660,8 +3660,8 @@ Semver Patch:
* **promises**: Unhandled rejections now emit a [process warning](https://nodejs.org/dist/latest-v6.x/docs/api/process.html#process_event_warning) after the first tick. (Benjamin Gruenbaum) [#8223](https://github.com/nodejs/node/pull/8223) * **promises**: Unhandled rejections now emit a [process warning](https://nodejs.org/dist/latest-v6.x/docs/api/process.html#process_event_warning) after the first tick. (Benjamin Gruenbaum) [#8223](https://github.com/nodejs/node/pull/8223)
* **repl**: Added auto alignment for `.editor` mode. (Prince J Wesley) [#8241](https://github.com/nodejs/node/pull/8241) * **repl**: Added auto alignment for `.editor` mode. (Prince J Wesley) [#8241](https://github.com/nodejs/node/pull/8241)
* **util**: Some functionality has been added to `util.inspect()`: * **util**: Some functionality has been added to `util.inspect()`:
- Returning `this` from a custom inspect function now works. (Anna Henningsen) [#8174](https://github.com/nodejs/node/pull/8174) * Returning `this` from a custom inspect function now works. (Anna Henningsen) [#8174](https://github.com/nodejs/node/pull/8174)
- Added support for Symbol-based custom inspection methods. (Anna Henningsen) [#8174](https://github.com/nodejs/node/pull/8174) * Added support for Symbol-based custom inspection methods. (Anna Henningsen) [#8174](https://github.com/nodejs/node/pull/8174)
### Commits ### Commits
@ -4164,21 +4164,21 @@ Semver Patch:
* **buffer**: Added `buffer.swap64()` to complement `swap16()` & `swap32()`. (Zach Bjornson) [#7157](https://github.com/nodejs/node/pull/7157) * **buffer**: Added `buffer.swap64()` to complement `swap16()` & `swap32()`. (Zach Bjornson) [#7157](https://github.com/nodejs/node/pull/7157)
* **build**: New `configure` options have been added for building Node.js as a shared library. (Stefan Budeanu) [#6994](https://github.com/nodejs/node/pull/6994) * **build**: New `configure` options have been added for building Node.js as a shared library. (Stefan Budeanu) [#6994](https://github.com/nodejs/node/pull/6994)
- The options are: `--shared`, `--without-v8-platform` & `--without-bundled-v8`. * The options are: `--shared`, `--without-v8-platform` & `--without-bundled-v8`.
* **crypto**: Root certificates have been updated. (Ben Noordhuis) [#7363](https://github.com/nodejs/node/pull/7363) * **crypto**: Root certificates have been updated. (Ben Noordhuis) [#7363](https://github.com/nodejs/node/pull/7363)
* **debugger**: The server address is now configurable via `--debug=<address>:<port>`. (Ben Noordhuis) [#3316](https://github.com/nodejs/node/pull/3316) * **debugger**: The server address is now configurable via `--debug=<address>:<port>`. (Ben Noordhuis) [#3316](https://github.com/nodejs/node/pull/3316)
* **npm**: Upgraded npm to v3.10.3 (Kat Marchán) [#7515](https://github.com/nodejs/node/pull/7515) & (Rebecca Turner) [#7410](https://github.com/nodejs/node/pull/7410) * **npm**: Upgraded npm to v3.10.3 (Kat Marchán) [#7515](https://github.com/nodejs/node/pull/7515) & (Rebecca Turner) [#7410](https://github.com/nodejs/node/pull/7410)
* **readline**: Added the `prompt` option to the readline constructor. (Evan Lucas) [#7125](https://github.com/nodejs/node/pull/7125) * **readline**: Added the `prompt` option to the readline constructor. (Evan Lucas) [#7125](https://github.com/nodejs/node/pull/7125)
* **repl / vm**: `sigint`/`ctrl+c` will now break out of infinite loops without stopping the Node.js instance. (Anna Henningsen) [#6635](https://github.com/nodejs/node/pull/6635) * **repl / vm**: `sigint`/`ctrl+c` will now break out of infinite loops without stopping the Node.js instance. (Anna Henningsen) [#6635](https://github.com/nodejs/node/pull/6635)
* **src**: * **src**:
- Added a `node::FreeEnvironment` public C++ API. (Cheng Zhao) [#3098](https://github.com/nodejs/node/pull/3098) * Added a `node::FreeEnvironment` public C++ API. (Cheng Zhao) [#3098](https://github.com/nodejs/node/pull/3098)
- Refactored `require('constants')`, constants are now available directly from their respective modules. (James M Snell) [#6534](https://github.com/nodejs/node/pull/6534) * Refactored `require('constants')`, constants are now available directly from their respective modules. (James M Snell) [#6534](https://github.com/nodejs/node/pull/6534)
* **stream**: Improved `readable.read()` performance by up to 70%. (Brian White) [#7077](https://github.com/nodejs/node/pull/7077) * **stream**: Improved `readable.read()` performance by up to 70%. (Brian White) [#7077](https://github.com/nodejs/node/pull/7077)
* **timers**: `setImmediate()` is now up to 150% faster in some situations. (Andras) [#6436](https://github.com/nodejs/node/pull/6436) * **timers**: `setImmediate()` is now up to 150% faster in some situations. (Andras) [#6436](https://github.com/nodejs/node/pull/6436)
* **util**: Added a `breakLength` option to `util.inspect()` to control how objects are formatted across lines. (cjihrig) [#7499](https://github.com/nodejs/node/pull/7499) * **util**: Added a `breakLength` option to `util.inspect()` to control how objects are formatted across lines. (cjihrig) [#7499](https://github.com/nodejs/node/pull/7499)
* **v8-inspector**: Experimental support has been added for debugging Node.js over the inspector protocol. (Ali Ijaz Sheikh) [#6792](https://github.com/nodejs/node/pull/6792) * **v8-inspector**: Experimental support has been added for debugging Node.js over the inspector protocol. (Ali Ijaz Sheikh) [#6792](https://github.com/nodejs/node/pull/6792)
- **Note: This feature is _experimental_, and it could be altered or removed.** * **Note: This feature is _experimental_, and it could be altered or removed.**
- You can try this feature by running Node.js with the `--inspect` flag. * You can try this feature by running Node.js with the `--inspect` flag.
### Commits ### Commits
@ -4344,8 +4344,8 @@ Semver Patch:
### Notable changes ### Notable changes
* **http**: * **http**:
- `req.read(0)` could cause incoming connections to stall and time out under certain conditions. (Fedor Indutny) [#7211](https://github.com/nodejs/node/pull/7211) * `req.read(0)` could cause incoming connections to stall and time out under certain conditions. (Fedor Indutny) [#7211](https://github.com/nodejs/node/pull/7211)
- When freeing the socket to be reused in keep-alive Agent wait for both prefinish and end events. Otherwise the next request may be written before the previous one has finished sending the body, leading to a parser errors. (Fedor Indutny) [#7149](https://github.com/nodejs/node/pull/7149) * When freeing the socket to be reused in keep-alive Agent wait for both prefinish and end events. Otherwise the next request may be written before the previous one has finished sending the body, leading to a parser errors. (Fedor Indutny) [#7149](https://github.com/nodejs/node/pull/7149)
* **npm**: upgrade npm to 3.9.5 (Kat Marchán) [#7139](https://github.com/nodejs/node/pull/7139) * **npm**: upgrade npm to 3.9.5 (Kat Marchán) [#7139](https://github.com/nodejs/node/pull/7139)
### Commits ### Commits
@ -4421,10 +4421,10 @@ Semver Patch:
* **buffer**: Ignore negative lengths in calls to `Buffer()` and `Buffer.allocUnsafe()`. This fixes a possible security concern (reported by Feross Aboukhadijeh) where user input is passed unchecked to the Buffer constructor or `allocUnsafe()` as it can expose parts of the memory slab used by other Buffers in the application. Note that negative lengths are not supported by the Buffer API and user input to the constructor should always be sanitised and type-checked. (Anna Henningsen) [#7051](https://github.com/nodejs/node/pull/7051) * **buffer**: Ignore negative lengths in calls to `Buffer()` and `Buffer.allocUnsafe()`. This fixes a possible security concern (reported by Feross Aboukhadijeh) where user input is passed unchecked to the Buffer constructor or `allocUnsafe()` as it can expose parts of the memory slab used by other Buffers in the application. Note that negative lengths are not supported by the Buffer API and user input to the constructor should always be sanitised and type-checked. (Anna Henningsen) [#7051](https://github.com/nodejs/node/pull/7051)
* **npm**: Upgrade npm to 3.9.3 (Kat Marchán) [#7030](https://github.com/nodejs/node/pull/7030) * **npm**: Upgrade npm to 3.9.3 (Kat Marchán) [#7030](https://github.com/nodejs/node/pull/7030)
- [`npm/npm@42d71be`](https://github.com/npm/npm/commit/42d71be2cec674dd9e860ad414f53184f667620d) [npm/npm#12685](https://github.com/npm/npm/pull/12685) When using `npm ls <pkg>` without a semver specifier, `npm ls` would skip any packages in your tree that matched by name, but had a prerelease version in their `package.json`. ([@zkat](https://github.com/zkat)) * [`npm/npm@42d71be`](https://github.com/npm/npm/commit/42d71be2cec674dd9e860ad414f53184f667620d) [npm/npm#12685](https://github.com/npm/npm/pull/12685) When using `npm ls <pkg>` without a semver specifier, `npm ls` would skip any packages in your tree that matched by name, but had a prerelease version in their `package.json`. ([@zkat](https://github.com/zkat))
- [`npm/npm@f04e05`](https://github.com/npm/npm/commit/df04e05af1f257a1903372e1baf334c0969fbdbd) [npm/npm#10013](https://github.com/npm/npm/issues/10013) `read-package-tree@5.1.4`: Fixes an issue where `npm install` would fail if your `node_modules` was symlinked. ([@iarna](https://github.com/iarna)) * [`npm/npm@f04e05`](https://github.com/npm/npm/commit/df04e05af1f257a1903372e1baf334c0969fbdbd) [npm/npm#10013](https://github.com/npm/npm/issues/10013) `read-package-tree@5.1.4`: Fixes an issue where `npm install` would fail if your `node_modules` was symlinked. ([@iarna](https://github.com/iarna))
- [`b894413`](https://github.com/npm/npm/commit/b8944139a935680c4a267468bb2d3c3082b5609f) [#12372](https://github.com/npm/npm/issues/12372) Changing a nested dependency in an `npm-shrinkwrap.json` and then running `npm install` would not get up the updated package. This corrects that. ([@misterbyrne](https://github.com/misterbyrne)) * [`b894413`](https://github.com/npm/npm/commit/b8944139a935680c4a267468bb2d3c3082b5609f) [#12372](https://github.com/npm/npm/issues/12372) Changing a nested dependency in an `npm-shrinkwrap.json` and then running `npm install` would not get up the updated package. This corrects that. ([@misterbyrne](https://github.com/misterbyrne))
- This release includes `npm@3.9.0`, which is the result of our Windows testing push -- the test suite (should) pass on Windows now. We're working on getting AppVeyor to a place where we can just rely on it like Travis. * This release includes `npm@3.9.0`, which is the result of our Windows testing push -- the test suite (should) pass on Windows now. We're working on getting AppVeyor to a place where we can just rely on it like Travis.
* **tty**: Default to blocking mode for stdio on OS X. A bug fix in libuv 1.9.0, introduced in Node.js v6.0.0, exposed problems with Node's use of non-blocking stdio, particularly on OS X which has a small output buffer. This change should fix CLI applications that have been having problems with output since Node.js v6.0.0 on OS X. The core team is continuing to address stdio concerns that exist across supported platforms and progress can be tracked at <https://github.com/nodejs/node/issues/6980>. (Jeremiah Senkpiel) [#6895](https://github.com/nodejs/node/pull/6895) * **tty**: Default to blocking mode for stdio on OS X. A bug fix in libuv 1.9.0, introduced in Node.js v6.0.0, exposed problems with Node's use of non-blocking stdio, particularly on OS X which has a small output buffer. This change should fix CLI applications that have been having problems with output since Node.js v6.0.0 on OS X. The core team is continuing to address stdio concerns that exist across supported platforms and progress can be tracked at <https://github.com/nodejs/node/issues/6980>. (Jeremiah Senkpiel) [#6895](https://github.com/nodejs/node/pull/6895)
* **V8**: Upgrade to V8 5.0.71.52. This includes a fix that addresses problems experienced by users of node-inspector since Node.js v6.0.0, see <https://github.com/node-inspector/node-inspector/issues/864> for details. (Michaël Zasso) [#6928](https://github.com/nodejs/node/pull/6928) * **V8**: Upgrade to V8 5.0.71.52. This includes a fix that addresses problems experienced by users of node-inspector since Node.js v6.0.0, see <https://github.com/node-inspector/node-inspector/issues/864> for details. (Michaël Zasso) [#6928](https://github.com/nodejs/node/pull/6928)
@ -4570,19 +4570,19 @@ Semver Patch:
### Notable changes ### Notable changes
- **buffer**: fix lastIndexOf and indexOf in various edge cases (Anna Henningsen) [#6511](https://github.com/nodejs/node/pull/6511) * **buffer**: fix lastIndexOf and indexOf in various edge cases (Anna Henningsen) [#6511](https://github.com/nodejs/node/pull/6511)
- **child_process**: use /system/bin/sh on android (Ben Noordhuis) [#6745](https://github.com/nodejs/node/pull/6745) * **child_process**: use /system/bin/sh on android (Ben Noordhuis) [#6745](https://github.com/nodejs/node/pull/6745)
- **deps**: * **deps**:
- upgrade npm to 3.8.9 (Rebecca Turner) [#6664](https://github.com/nodejs/node/pull/6664) * upgrade npm to 3.8.9 (Rebecca Turner) [#6664](https://github.com/nodejs/node/pull/6664)
- upgrade to V8 5.0.71.47 (Ali Ijaz Sheikh) [#6572](https://github.com/nodejs/node/pull/6572) * upgrade to V8 5.0.71.47 (Ali Ijaz Sheikh) [#6572](https://github.com/nodejs/node/pull/6572)
- upgrade libuv to 1.9.1 (Saúl Ibarra Corretgé) [#6796](https://github.com/nodejs/node/pull/6796) * upgrade libuv to 1.9.1 (Saúl Ibarra Corretgé) [#6796](https://github.com/nodejs/node/pull/6796)
- Intl: ICU 57 bump (Steven R. Loomis) [#6088](https://github.com/nodejs/node/pull/6088) * Intl: ICU 57 bump (Steven R. Loomis) [#6088](https://github.com/nodejs/node/pull/6088)
- **repl**: * **repl**:
- copying tabs shouldn't trigger completion (Eugene Obrezkov) [#5958](https://github.com/nodejs/node/pull/5958) * copying tabs shouldn't trigger completion (Eugene Obrezkov) [#5958](https://github.com/nodejs/node/pull/5958)
- exports `Recoverable` (Blake Embrey) [#3488](https://github.com/nodejs/node/pull/3488) * exports `Recoverable` (Blake Embrey) [#3488](https://github.com/nodejs/node/pull/3488)
- **src**: add O_NOATIME constant (Rich Trott) [#6492](https://github.com/nodejs/node/pull/6492) * **src**: add O_NOATIME constant (Rich Trott) [#6492](https://github.com/nodejs/node/pull/6492)
- **src,module**: add --preserve-symlinks command line flag (James M Snell) [#6537](https://github.com/nodejs/node/pull/6537) * **src,module**: add --preserve-symlinks command line flag (James M Snell) [#6537](https://github.com/nodejs/node/pull/6537)
- **util**: adhere to `noDeprecation` set at runtime (Anna Henningsen) [#6683](https://github.com/nodejs/node/pull/6683) * **util**: adhere to `noDeprecation` set at runtime (Anna Henningsen) [#6683](https://github.com/nodejs/node/pull/6683)
As of this release the 6.X line now includes 64-bit binaries for Linux on Power Systems As of this release the 6.X line now includes 64-bit binaries for Linux on Power Systems
running in big endian mode in addition to the existing 64-bit binaries for running in little endian mode. running in big endian mode in addition to the existing 64-bit binaries for running in little endian mode.
@ -4719,16 +4719,16 @@ running in big endian mode in addition to the existing 64-bit binaries for runni
* **assert**: `deep{Strict}Equal()` now works correctly with circular references. (Rich Trott) [#6432](https://github.com/nodejs/node/pull/6432) * **assert**: `deep{Strict}Equal()` now works correctly with circular references. (Rich Trott) [#6432](https://github.com/nodejs/node/pull/6432)
* **debugger**: Arrays are now formatted correctly in the debugger repl. (cjihrig) [#6448](https://github.com/nodejs/node/pull/6448) * **debugger**: Arrays are now formatted correctly in the debugger repl. (cjihrig) [#6448](https://github.com/nodejs/node/pull/6448)
* **deps**: Upgrade OpenSSL sources to 1.0.2h (Shigeki Ohtsu) [#6550](https://github.com/nodejs/node/pull/6550) * **deps**: Upgrade OpenSSL sources to 1.0.2h (Shigeki Ohtsu) [#6550](https://github.com/nodejs/node/pull/6550)
- Please see our [blog post](https://nodejs.org/en/blog/vulnerability/openssl-may-2016/) for more info on the security contents of this release. * Please see our [blog post](https://nodejs.org/en/blog/vulnerability/openssl-may-2016/) for more info on the security contents of this release.
* **net**: Introduced a `Socket#connecting` property. (Fedor Indutny) [#6404](https://github.com/nodejs/node/pull/6404) * **net**: Introduced a `Socket#connecting` property. (Fedor Indutny) [#6404](https://github.com/nodejs/node/pull/6404)
- Previously this information was only available as the undocumented, internal `_connecting` property. * Previously this information was only available as the undocumented, internal `_connecting` property.
* **process**: Introduced `process.cpuUsage()`. (Patrick Mueller) [#6157](https://github.com/nodejs/node/pull/6157) * **process**: Introduced `process.cpuUsage()`. (Patrick Mueller) [#6157](https://github.com/nodejs/node/pull/6157)
* **stream**: `Writable#setDefaultEncoding()` now returns `this`. (Alexander Makarenko) [#5040](https://github.com/nodejs/node/pull/5040) * **stream**: `Writable#setDefaultEncoding()` now returns `this`. (Alexander Makarenko) [#5040](https://github.com/nodejs/node/pull/5040)
* **util**: Two new additions to `util.inspect()`: * **util**: Two new additions to `util.inspect()`:
- Added a `maxArrayLength` option to truncate the formatting of Arrays. (James M Snell) [#6334](https://github.com/nodejs/node/pull/6334) * Added a `maxArrayLength` option to truncate the formatting of Arrays. (James M Snell) [#6334](https://github.com/nodejs/node/pull/6334)
- This is set to `100` by default. * This is set to `100` by default.
- Added a `showProxy` option for formatting proxy intercepting handlers. (James M Snell) [#6465](https://github.com/nodejs/node/pull/6465) * Added a `showProxy` option for formatting proxy intercepting handlers. (James M Snell) [#6465](https://github.com/nodejs/node/pull/6465)
- Inspecting proxies is non-trivial and as such this is off by default. * Inspecting proxies is non-trivial and as such this is off by default.
### Commits ### Commits

View File

@ -55,13 +55,13 @@ for details on patched vulnerabilities.
### Notable changes ### Notable changes
* **build**: * **build**:
- Disable V8 snapshots - The hashseed embedded in the snapshot is * Disable V8 snapshots - The hashseed embedded in the snapshot is
currently the same for all runs of the binary. This opens node up to currently the same for all runs of the binary. This opens node up to
collision attacks which could result in a Denial of Service. We have collision attacks which could result in a Denial of Service. We have
temporarily disabled snapshots until a more robust solution is found temporarily disabled snapshots until a more robust solution is found
(Ali Ijaz Sheikh) (Ali Ijaz Sheikh)
* **deps**: * **deps**:
- CVE-2017-1000381 - The c-ares function ares_parse_naptr_reply(), * CVE-2017-1000381 - The c-ares function ares_parse_naptr_reply(),
which is used for parsing NAPTR responses, could be triggered to which is used for parsing NAPTR responses, could be triggered to
read memory outside of the given input buffer if the passed in DNS read memory outside of the given input buffer if the passed in DNS
response packet was crafted in a particular way. This patch checks that response packet was crafted in a particular way. This patch checks that
@ -344,14 +344,14 @@ for details on patched vulnerabilities.
### Notable Changes ### Notable Changes
* **buffer**: * **buffer**:
- do not segfault on out-of-range index (Timothy Gu) [#11927](https://github.com/nodejs/node/pull/11927) * do not segfault on out-of-range index (Timothy Gu) [#11927](https://github.com/nodejs/node/pull/11927)
* **crypto**: * **crypto**:
- Fix memory leak if certificate is revoked (Tom Atkinson) [#12089](https://github.com/nodejs/node/pull/12089) * Fix memory leak if certificate is revoked (Tom Atkinson) [#12089](https://github.com/nodejs/node/pull/12089)
* **deps**: * **deps**:
* upgrade npm to 4.2.0 (Kat Marchán) [#11389](https://github.com/nodejs/node/pull/11389) * upgrade npm to 4.2.0 (Kat Marchán) [#11389](https://github.com/nodejs/node/pull/11389)
* fix async await desugaring in V8 (Michaël Zasso) [#12004](https://github.com/nodejs/node/pull/12004) * fix async await desugaring in V8 (Michaël Zasso) [#12004](https://github.com/nodejs/node/pull/12004)
* **readline**: * **readline**:
- add option to stop duplicates in history (Danny Nemer) [#2982](https://github.com/nodejs/node/pull/2982) * add option to stop duplicates in history (Danny Nemer) [#2982](https://github.com/nodejs/node/pull/2982)
### Commits ### Commits
@ -1240,8 +1240,8 @@ users is "low". Details on this determination can be found
### Notable changes ### Notable changes
* **buffer**: * **buffer**:
- Improve performance of Buffer allocation by ~11%. (Brian White) [#10443](https://github.com/nodejs/node/pull/10443) * Improve performance of Buffer allocation by ~11%. (Brian White) [#10443](https://github.com/nodejs/node/pull/10443)
- Improve performance of Buffer.from() by ~50%. (Brian White) [#10443](https://github.com/nodejs/node/pull/10443) * Improve performance of Buffer.from() by ~50%. (Brian White) [#10443](https://github.com/nodejs/node/pull/10443)
* **events**: Improve performance of `EventEmitter.once()` by ~27%. (Brian White) [#10445](https://github.com/nodejs/node/pull/10445) * **events**: Improve performance of `EventEmitter.once()` by ~27%. (Brian White) [#10445](https://github.com/nodejs/node/pull/10445)
* **fs**: Allow passing Uint8Array to fs methods where Buffers are supported. (Anna Henningsen) [#10382](https://github.com/nodejs/node/pull/10382) * **fs**: Allow passing Uint8Array to fs methods where Buffers are supported. (Anna Henningsen) [#10382](https://github.com/nodejs/node/pull/10382)
* **http**: Improve performance of http server by ~7%. (Brian White) [#6533](https://github.com/nodejs/node/pull/6533) * **http**: Improve performance of http server by ~7%. (Brian White) [#6533](https://github.com/nodejs/node/pull/6533)
@ -1400,18 +1400,18 @@ Thank you to @italoacasas for preparing the majority of this release.
### Notable changes ### Notable changes
* **buffer**: * **buffer**:
- buffer.fill() now works properly for the UCS2 encoding on Big-Endian machines. (Anna Henningsen) [#9837](https://github.com/nodejs/node/pull/9837) * buffer.fill() now works properly for the UCS2 encoding on Big-Endian machines. (Anna Henningsen) [#9837](https://github.com/nodejs/node/pull/9837)
* **cluster**: * **cluster**:
- disconnect() now returns a reference to the disconnected worker. (Sean Villars) [#10019](https://github.com/nodejs/node/pull/10019) * disconnect() now returns a reference to the disconnected worker. (Sean Villars) [#10019](https://github.com/nodejs/node/pull/10019)
* **crypto**: * **crypto**:
- The built-in list of Well-Known CAs (Certificate Authorities) can now be extended via a NODE_EXTRA_CA_CERTS environment variable. (Sam Roberts) [#9139](https://github.com/nodejs/node/pull/9139) * The built-in list of Well-Known CAs (Certificate Authorities) can now be extended via a NODE_EXTRA_CA_CERTS environment variable. (Sam Roberts) [#9139](https://github.com/nodejs/node/pull/9139)
* **http**: * **http**:
- Remove stale timeout listeners in order to prevent a memory leak when using keep alive. (Karl Böhlmark) [#9440](https://github.com/nodejs/node/pull/9440) * Remove stale timeout listeners in order to prevent a memory leak when using keep alive. (Karl Böhlmark) [#9440](https://github.com/nodejs/node/pull/9440)
* **tls**: * **tls**:
- Allow obvious key/passphrase combinations. (Sam Roberts) [#10294](https://github.com/nodejs/node/pull/10294) * Allow obvious key/passphrase combinations. (Sam Roberts) [#10294](https://github.com/nodejs/node/pull/10294)
* **url**: * **url**:
- Including base argument in URL.originFor() to meet specification compliance. (joyeecheung) [#10021](https://github.com/nodejs/node/pull/10021) * Including base argument in URL.originFor() to meet specification compliance. (joyeecheung) [#10021](https://github.com/nodejs/node/pull/10021)
- Improve URLSearchParams to meet specification compliance. (Timothy Gu) [#9484](https://github.com/nodejs/node/pull/9484) * Improve URLSearchParams to meet specification compliance. (Timothy Gu) [#9484](https://github.com/nodejs/node/pull/9484)
### Commits ### Commits
@ -1550,8 +1550,8 @@ Thank you to @italoacasas for preparing the majority of this release.
### Notable changes ### Notable changes
* **buffer**: * **buffer**:
- Reverted the runtime deprecation of calling `Buffer()` without `new`. (Anna Henningsen) [#9529](https://github.com/nodejs/node/pull/9529) * Reverted the runtime deprecation of calling `Buffer()` without `new`. (Anna Henningsen) [#9529](https://github.com/nodejs/node/pull/9529)
- Fixed `buffer.transcode()` for single-byte character * Fixed `buffer.transcode()` for single-byte character
encodings to `UCS2`. (Anna Henningsen) [#9838](https://github.com/nodejs/node/pull/9838) encodings to `UCS2`. (Anna Henningsen) [#9838](https://github.com/nodejs/node/pull/9838)
* **promise**: `--trace-warnings` now produces useful stacktraces for Promise warnings. (Anna Henningsen) [#9525](https://github.com/nodejs/node/pull/9525) * **promise**: `--trace-warnings` now produces useful stacktraces for Promise warnings. (Anna Henningsen) [#9525](https://github.com/nodejs/node/pull/9525)
* **repl**: Fixed a bug preventing correct parsing of generator functions. (Teddy Katz) [#9852](https://github.com/nodejs/node/pull/9852) * **repl**: Fixed a bug preventing correct parsing of generator functions. (Teddy Katz) [#9852](https://github.com/nodejs/node/pull/9852)
@ -1763,7 +1763,7 @@ _This is a security release impacting Windows 10 users._
* **crypto**: The `Decipher` methods `setAuthTag()` and `setAAD` now return `this`. (Kirill Fomichev) [#9398](https://github.com/nodejs/node/pull/9398) * **crypto**: The `Decipher` methods `setAuthTag()` and `setAAD` now return `this`. (Kirill Fomichev) [#9398](https://github.com/nodejs/node/pull/9398)
* **dns**: Implemented `{ttl: true}` for `resolve4()` and `resolve6()`. (Ben Noordhuis) [#9296](https://github.com/nodejs/node/pull/9296) * **dns**: Implemented `{ttl: true}` for `resolve4()` and `resolve6()`. (Ben Noordhuis) [#9296](https://github.com/nodejs/node/pull/9296)
* **libuv**: Upgrade to v1.10.1 (cjihrig) [#9647](https://github.com/nodejs/node/pull/9647) * **libuv**: Upgrade to v1.10.1 (cjihrig) [#9647](https://github.com/nodejs/node/pull/9647)
- Fixed a potential buffer overflow when writing data to console on Windows 10. (CVE-2016-9551) * Fixed a potential buffer overflow when writing data to console on Windows 10. (CVE-2016-9551)
* **process**: Added a new `external` property to the data returned by `memoryUsage()`. (Fedor Indutny) [#9587](https://github.com/nodejs/node/pull/9587) * **process**: Added a new `external` property to the data returned by `memoryUsage()`. (Fedor Indutny) [#9587](https://github.com/nodejs/node/pull/9587)
* **tls**: Fixed a memory leak when writes were queued on TLS connection that was destroyed during handshake. (Fedor Indutny) [#9626](https://github.com/nodejs/node/pull/9626) * **tls**: Fixed a memory leak when writes were queued on TLS connection that was destroyed during handshake. (Fedor Indutny) [#9626](https://github.com/nodejs/node/pull/9626)
* **V8 (dep)**: Upgrade to v5.4.500.43 (Michaël Zasso) [#9697](https://github.com/nodejs/node/pull/9697) * **V8 (dep)**: Upgrade to v5.4.500.43 (Michaël Zasso) [#9697](https://github.com/nodejs/node/pull/9697)

View File

@ -118,8 +118,8 @@ Vulnerabilities fixed:
### Notable Changes ### Notable Changes
* **n-api**: * **n-api**:
- add API for asynchronous functions (Gabriel Schulhof) [#17887](https://github.com/nodejs/node/pull/17887) * add API for asynchronous functions (Gabriel Schulhof) [#17887](https://github.com/nodejs/node/pull/17887)
- mark thread-safe function as stable (Gabriel Schulhof) [#25556](https://github.com/nodejs/node/pull/25556) * mark thread-safe function as stable (Gabriel Schulhof) [#25556](https://github.com/nodejs/node/pull/25556)
### Commits ### Commits
@ -196,9 +196,9 @@ a missing CLI flag to adjust the max header size of the http parser.
### Notable Changes ### Notable Changes
* **cli**: * **cli**:
- add --max-http-header-size flag (cjihrig) [#24811](https://github.com/nodejs/node/pull/24811) * add --max-http-header-size flag (cjihrig) [#24811](https://github.com/nodejs/node/pull/24811)
* **http**: * **http**:
- add maxHeaderSize property (cjihrig) [#24860](https://github.com/nodejs/node/pull/24860) * add maxHeaderSize property (cjihrig) [#24860](https://github.com/nodejs/node/pull/24860)
### Commits ### Commits
@ -215,9 +215,9 @@ a missing CLI flag to adjust the max header size of the http parser.
### Notable changes ### Notable changes
* **assert**: * **assert**:
- revert breaking change (Ruben Bridgewater) [#24786](https://github.com/nodejs/node/pull/24786) * revert breaking change (Ruben Bridgewater) [#24786](https://github.com/nodejs/node/pull/24786)
* **http2**: * **http2**:
- fix sequence of error/close events (Gerhard Stoebich) [#24789](https://github.com/nodejs/node/pull/24789) * fix sequence of error/close events (Gerhard Stoebich) [#24789](https://github.com/nodejs/node/pull/24789)
### Commits ### Commits
@ -356,14 +356,14 @@ Fixes for the following CVEs are included in this release:
### Notable changes ### Notable changes
* **assert**: * **assert**:
- backport some assert commits (Ruben Bridgewater) [#23223](https://github.com/nodejs/node/pull/23223) * backport some assert commits (Ruben Bridgewater) [#23223](https://github.com/nodejs/node/pull/23223)
* **deps**: * **deps**:
- upgrade to libuv 1.23.2 (cjihrig) [#23336](https://github.com/nodejs/node/pull/23336) * upgrade to libuv 1.23.2 (cjihrig) [#23336](https://github.com/nodejs/node/pull/23336)
- V8: cherry-pick 64-bit hash seed commits (Yang Guo) [#23274](https://github.com/nodejs/node/pull/23274) * V8: cherry-pick 64-bit hash seed commits (Yang Guo) [#23274](https://github.com/nodejs/node/pull/23274)
* **http**: * **http**:
- added aborted property to request (Robert Nagy) [#20094](https://github.com/nodejs/node/pull/20094) * added aborted property to request (Robert Nagy) [#20094](https://github.com/nodejs/node/pull/20094)
* **http2**: * **http2**:
- graduate from experimental (James M Snell) [#22466](https://github.com/nodejs/node/pull/22466) * graduate from experimental (James M Snell) [#22466](https://github.com/nodejs/node/pull/22466)
### Commits ### Commits
@ -502,39 +502,39 @@ Fixes for the following CVEs are included in this release:
### Notable Changes ### Notable Changes
* **async_hooks**: * **async_hooks**:
- rename PromiseWrap.parentId (Ali Ijaz Sheikh) [#18633](https://github.com/nodejs/node/pull/18633) * rename PromiseWrap.parentId (Ali Ijaz Sheikh) [#18633](https://github.com/nodejs/node/pull/18633)
- remove runtime deprecation (Ali Ijaz Sheikh) [#19517](https://github.com/nodejs/node/pull/19517) * remove runtime deprecation (Ali Ijaz Sheikh) [#19517](https://github.com/nodejs/node/pull/19517)
- deprecate unsafe emit{Before,After} (Ali Ijaz Sheikh) [#18513](https://github.com/nodejs/node/pull/18513) * deprecate unsafe emit{Before,After} (Ali Ijaz Sheikh) [#18513](https://github.com/nodejs/node/pull/18513)
* **cluster**: * **cluster**:
- add cwd to cluster.settings (cjihrig) [#18399](https://github.com/nodejs/node/pull/18399) * add cwd to cluster.settings (cjihrig) [#18399](https://github.com/nodejs/node/pull/18399)
- support windowsHide option for workers (Todd Wong) [#17412](https://github.com/nodejs/node/pull/17412) * support windowsHide option for workers (Todd Wong) [#17412](https://github.com/nodejs/node/pull/17412)
* **crypto**: * **crypto**:
- allow passing null as IV unless required (Tobias Nießen) [#18644](https://github.com/nodejs/node/pull/18644) * allow passing null as IV unless required (Tobias Nießen) [#18644](https://github.com/nodejs/node/pull/18644)
* **deps**: * **deps**:
- upgrade npm to 6.4.1 (Kat Marchán) [#22591](https://github.com/nodejs/node/pull/22591) * upgrade npm to 6.4.1 (Kat Marchán) [#22591](https://github.com/nodejs/node/pull/22591)
- upgrade libuv to 1.19.2 (cjihrig) [#18918](https://github.com/nodejs/node/pull/18918) * upgrade libuv to 1.19.2 (cjihrig) [#18918](https://github.com/nodejs/node/pull/18918)
- Upgrade node-inspect to 1.11.5 (Jan Krems) [#21055](https://github.com/nodejs/node/pull/21055) * Upgrade node-inspect to 1.11.5 (Jan Krems) [#21055](https://github.com/nodejs/node/pull/21055)
* **fs,net**: * **fs,net**:
- support as and as+ flags in stringToFlags() (Sarat Addepalli) [#18801](https://github.com/nodejs/node/pull/18801) * support as and as+ flags in stringToFlags() (Sarat Addepalli) [#18801](https://github.com/nodejs/node/pull/18801)
- emit 'ready' for fs streams and sockets (Sameer Srivastava) [#19408](https://github.com/nodejs/node/pull/19408) * emit 'ready' for fs streams and sockets (Sameer Srivastava) [#19408](https://github.com/nodejs/node/pull/19408)
* **http, http2**: * **http, http2**:
- add options to http.createServer() (Peter Marton) [#15752](https://github.com/nodejs/node/pull/15752)- * add options to http.createServer() (Peter Marton) [#15752](https://github.com/nodejs/node/pull/15752)-
- add 103 Early Hints status code (Yosuke Furukawa) [#16644](https://github.com/nodejs/node/pull/16644) * add 103 Early Hints status code (Yosuke Furukawa) [#16644](https://github.com/nodejs/node/pull/16644)
- add http fallback options to .createServer (Peter Marton) [#15752](https://github.com/nodejs/node/pull/15752) * add http fallback options to .createServer (Peter Marton) [#15752](https://github.com/nodejs/node/pull/15752)
* **n-api**: * **n-api**:
- take n-api out of experimental (Michael Dawson) [#19262](https://github.com/nodejs/node/pull/19262) * take n-api out of experimental (Michael Dawson) [#19262](https://github.com/nodejs/node/pull/19262)
* **perf_hooks**: * **perf_hooks**:
- add warning when too many entries in the timeline (James M Snell) [#18087](https://github.com/nodejs/node/pull/18087) * add warning when too many entries in the timeline (James M Snell) [#18087](https://github.com/nodejs/node/pull/18087)
* **src**: * **src**:
- add public API for managing NodePlatform (Cheng Zhao) [#16981](https://github.com/nodejs/node/pull/16981) * add public API for managing NodePlatform (Cheng Zhao) [#16981](https://github.com/nodejs/node/pull/16981)
- allow --perf-(basic-)?prof in NODE\_OPTIONS (Leko) [#17600](https://github.com/nodejs/node/pull/17600) * allow --perf-(basic-)?prof in NODE\_OPTIONS (Leko) [#17600](https://github.com/nodejs/node/pull/17600)
- node internals' postmortem metadata (Matheus Marchini) [#14901](https://github.com/nodejs/node/pull/14901) * node internals' postmortem metadata (Matheus Marchini) [#14901](https://github.com/nodejs/node/pull/14901)
* **tls**: * **tls**:
- expose Finished messages in TLSSocket (Anton Salikhmetov) [#19102](https://github.com/nodejs/node/pull/19102) * expose Finished messages in TLSSocket (Anton Salikhmetov) [#19102](https://github.com/nodejs/node/pull/19102)
* **trace_events**: * **trace_events**:
- add file pattern cli option (Andreas Madsen) [#18480](https://github.com/nodejs/node/pull/18480) * add file pattern cli option (Andreas Madsen) [#18480](https://github.com/nodejs/node/pull/18480)
* **util**: * **util**:
- implement util.getSystemErrorName() (Joyee Cheung) [#18186](https://github.com/nodejs/node/pull/18186) * implement util.getSystemErrorName() (Joyee Cheung) [#18186](https://github.com/nodejs/node/pull/18186)
### Commits ### Commits
@ -877,12 +877,12 @@ Fixes for the following CVEs are included in this release:
### Notable Changes ### Notable Changes
* **deps**: * **deps**:
- update node-inspect to 1.11.3 (Jan Krems) [#18354](https://github.com/nodejs/node/pull/18354) * update node-inspect to 1.11.3 (Jan Krems) [#18354](https://github.com/nodejs/node/pull/18354)
- update nghttp2 to 1.29.0 (James M Snell) [#17908](https://github.com/nodejs/node/pull/17908) * update nghttp2 to 1.29.0 (James M Snell) [#17908](https://github.com/nodejs/node/pull/17908)
* **http2**: * **http2**:
- Sync with current release stream * Sync with current release stream
* **n-api**: * **n-api**:
- Sync with current release stream * Sync with current release stream
### Commits ### Commits
@ -1822,10 +1822,10 @@ Fixes for the following CVEs are included in this release:
### Notable Changes ### Notable Changes
- **console**: * **console**:
- avoid adding infinite error listeners (Matteo Collina) [#16770](https://github.com/nodejs/node/pull/16770) * avoid adding infinite error listeners (Matteo Collina) [#16770](https://github.com/nodejs/node/pull/16770)
- **http2**: * **http2**:
- improve errors thrown in header validation (Joyee Cheung) [#16718](https://github.com/nodejs/node/pull/16718) * improve errors thrown in header validation (Joyee Cheung) [#16718](https://github.com/nodejs/node/pull/16718)
### Commits ### Commits
@ -1943,10 +1943,10 @@ Fixes for the following CVEs are included in this release:
### Notable Changes ### Notable Changes
- **openssl**: * **openssl**:
- upgrade openssl sources to 1.0.2m (Shigeki Ohtsu) [#16691](https://github.com/nodejs/node/pull/16691) * upgrade openssl sources to 1.0.2m (Shigeki Ohtsu) [#16691](https://github.com/nodejs/node/pull/16691)
- ***Revert*** "**https**: * ***Revert*** "**https**:
- refactor to use http internals" (Myles Borins) [#16660](https://github.com/nodejs/node/pull/16660) * refactor to use http internals" (Myles Borins) [#16660](https://github.com/nodejs/node/pull/16660)
### Commits ### Commits
@ -1972,15 +1972,15 @@ This release marks the transition of Node.js v8 into Long Term Support (LTS) wit
### Notable Changes ### Notable Changes
* **doc**: * **doc**:
- add Gibson Fahnestock to Release team (Gibson Fahnestock) [#16620](https://github.com/nodejs/node/pull/16620) * add Gibson Fahnestock to Release team (Gibson Fahnestock) [#16620](https://github.com/nodejs/node/pull/16620)
* **deps**: * **deps**:
- update npm to 5.5.1 (Myles Borins) [#16509](https://github.com/nodejs/node/pull/16509) * update npm to 5.5.1 (Myles Borins) [#16509](https://github.com/nodejs/node/pull/16509)
* **http2**: * **http2**:
- The exposed http2 socket is no longer manipulatable (Anatoli Papirovski) [#16330](https://github.com/nodejs/node/pull/16330) * The exposed http2 socket is no longer manipulatable (Anatoli Papirovski) [#16330](https://github.com/nodejs/node/pull/16330)
* **module**: * **module**:
- support custom paths to require.resolve() (cjihrig) [#16397](https://github.com/nodejs/node/pull/16397) * support custom paths to require.resolve() (cjihrig) [#16397](https://github.com/nodejs/node/pull/16397)
* **util**: * **util**:
- util.TextEncoder and util.TextDecoder are no longer experimental. There will no longer be a warning when they are used (James M Snell) [#15743](https://github.com/nodejs/node/pull/15743) * util.TextEncoder and util.TextDecoder are no longer experimental. There will no longer be a warning when they are used (James M Snell) [#15743](https://github.com/nodejs/node/pull/15743)
### Commits ### Commits
@ -2086,7 +2086,7 @@ This release marks the transition of Node.js v8 into Long Term Support (LTS) wit
### Notable Changes ### Notable Changes
* **net**: * **net**:
- Fix timeout with null handle issue. This is a regression in Node 8.8.0 [#16489](https://github.com/nodejs/node/pull/16489) * Fix timeout with null handle issue. This is a regression in Node 8.8.0 [#16489](https://github.com/nodejs/node/pull/16489)
### Commits ### Commits
@ -2110,15 +2110,15 @@ This release marks the transition of Node.js v8 into Long Term Support (LTS) wit
### Notable Changes ### Notable Changes
* **crypto**: * **crypto**:
- expose ECDH class [#8188](https://github.com/nodejs/node/pull/8188) * expose ECDH class [#8188](https://github.com/nodejs/node/pull/8188)
* **http2**: * **http2**:
- http2 is now exposed by default without the need for a flag [#15685](https://github.com/nodejs/node/pull/15685) * http2 is now exposed by default without the need for a flag [#15685](https://github.com/nodejs/node/pull/15685)
- a new environment variable NODE\_NO\_HTTP2 has been added to allow userland http2 to be required [#15685](https://github.com/nodejs/node/pull/15685) * a new environment variable NODE\_NO\_HTTP2 has been added to allow userland http2 to be required [#15685](https://github.com/nodejs/node/pull/15685)
- support has been added for generic `Duplex` streams [#16269](https://github.com/nodejs/node/pull/16269) * support has been added for generic `Duplex` streams [#16269](https://github.com/nodejs/node/pull/16269)
* **module**: * **module**:
- resolve and instantiate loader pipeline hooks have been added to the ESM lifecycle [#15445](https://github.com/nodejs/node/pull/15445) * resolve and instantiate loader pipeline hooks have been added to the ESM lifecycle [#15445](https://github.com/nodejs/node/pull/15445)
* **zlib**: * **zlib**:
- CVE-2017-14919 - In zlib v1.2.9, a change was made that causes an error to be raised when a raw deflate stream is initialized with windowBits set to 8. On some versions this crashes Node and you cannot recover from it, while on some versions it throws an exception. Node.js will now gracefully set windowBits to 9 replicating the legacy behavior to avoid a DOS vector. [nodejs-private/node-private#95](https://github.com/nodejs-private/node-private/pull/95) * CVE-2017-14919 - In zlib v1.2.9, a change was made that causes an error to be raised when a raw deflate stream is initialized with windowBits set to 8. On some versions this crashes Node and you cannot recover from it, while on some versions it throws an exception. Node.js will now gracefully set windowBits to 9 replicating the legacy behavior to avoid a DOS vector. [nodejs-private/node-private#95](https://github.com/nodejs-private/node-private/pull/95)
### Commits ### Commits
@ -3474,10 +3474,10 @@ Big thanks to @addaleax who prepared the vast majority of this release.
[[`dc3f6b9ac1`](https://github.com/nodejs/node/commit/dc3f6b9ac1)] [[`dc3f6b9ac1`](https://github.com/nodejs/node/commit/dc3f6b9ac1)]
[#14235](https://github.com/nodejs/node/pull/14235) [#14235](https://github.com/nodejs/node/pull/14235)
* `npm` Changelogs: * `npm` Changelogs:
- [v5.0.4](https://github.com/npm/npm/releases/tag/v5.0.4) * [v5.0.4](https://github.com/npm/npm/releases/tag/v5.0.4)
- [v5.1.0](https://github.com/npm/npm/releases/tag/v5.1.0) * [v5.1.0](https://github.com/npm/npm/releases/tag/v5.1.0)
- [v5.2.0](https://github.com/npm/npm/releases/tag/v5.2.0) * [v5.2.0](https://github.com/npm/npm/releases/tag/v5.2.0)
- [v5.3.0](https://github.com/npm/npm/releases/tag/v5.3.0) * [v5.3.0](https://github.com/npm/npm/releases/tag/v5.3.0)
### Commits ### Commits
@ -3737,9 +3737,9 @@ This is a security release. All Node.js users should consult the security releas
### Notable changes ### Notable changes
* **build**: * **build**:
- Disable V8 snapshots - The hashseed embedded in the snapshot is currently the same for all runs of the binary. This opens node up to collision attacks which could result in a Denial of Service. We have temporarily disabled snapshots until a more robust solution is found (Ali Ijaz Sheikh) * Disable V8 snapshots - The hashseed embedded in the snapshot is currently the same for all runs of the binary. This opens node up to collision attacks which could result in a Denial of Service. We have temporarily disabled snapshots until a more robust solution is found (Ali Ijaz Sheikh)
* **deps**: * **deps**:
- CVE-2017-1000381 - The c-ares function ares_parse_naptr_reply(), which is used for parsing NAPTR responses, could be triggered to read memory outside of the given input buffer if the passed in DNS response packet was crafted in a particular way. This patch checks that there is enough data for the required elements of an NAPTR record (2 int16, 3 bytes for string lengths) before processing a record. (David Drysdale) * CVE-2017-1000381 - The c-ares function ares_parse_naptr_reply(), which is used for parsing NAPTR responses, could be triggered to read memory outside of the given input buffer if the passed in DNS response packet was crafted in a particular way. This patch checks that there is enough data for the required elements of an NAPTR record (2 int16, 3 bytes for string lengths) before processing a record. (David Drysdale)
### Commits ### Commits

View File

@ -84,16 +84,16 @@ The patch release is to ensure that all binaries and installers work as expected
### Notable Changes ### Notable Changes
* **deps**: * **deps**:
- Updated ICU to 61.1 (Steven R. Loomis) [#19621](https://github.com/nodejs/node/pull/19621) * Updated ICU to 61.1 (Steven R. Loomis) [#19621](https://github.com/nodejs/node/pull/19621)
Includes CLDR 33 (many new languages and data improvements). Includes CLDR 33 (many new languages and data improvements).
* **fs**: * **fs**:
- Emit 'ready' event for `ReadStream` and `WriteStream` (Sameer Srivastava) [#19408](https://github.com/nodejs/node/pull/19408) * Emit 'ready' event for `ReadStream` and `WriteStream` (Sameer Srivastava) [#19408](https://github.com/nodejs/node/pull/19408)
* **n-api**: * **n-api**:
- Bump version of n-api supported (Michael Dawson) [#19497](https://github.com/nodejs/node/pull/19497) * Bump version of n-api supported (Michael Dawson) [#19497](https://github.com/nodejs/node/pull/19497)
* **net**: * **net**:
- Emit 'ready' event for `Socket` (Sameer Srivastava) [#19408](https://github.com/nodejs/node/pull/19408) * Emit 'ready' event for `Socket` (Sameer Srivastava) [#19408](https://github.com/nodejs/node/pull/19408)
* **Added new collaborators** * **Added new collaborators**
- [mafintosh](https://github.com/mafintosh) Mathias Buus * [mafintosh](https://github.com/mafintosh) Mathias Buus
### Commits ### Commits
@ -215,17 +215,17 @@ Fixes for the following CVEs are included in this release:
* **Update root certificates**: 5 additional root certificates have been added to the Node.js binary and 30 have been removed. * **Update root certificates**: 5 additional root certificates have been added to the Node.js binary and 30 have been removed.
* **cluster**: * **cluster**:
- Add support for `NODE_OPTIONS="--inspect"` (Sameer Srivastava) [#19165](https://github.com/nodejs/node/pull/19165) * Add support for `NODE_OPTIONS="--inspect"` (Sameer Srivastava) [#19165](https://github.com/nodejs/node/pull/19165)
* **crypto**: * **crypto**:
- Expose the public key of a certificate (Hannes Magnusson) [#17690](https://github.com/nodejs/node/pull/17690) * Expose the public key of a certificate (Hannes Magnusson) [#17690](https://github.com/nodejs/node/pull/17690)
* **n-api**: * **n-api**:
- Add `napi_fatal_exception` to trigger an `uncaughtException` in JavaScript (Mathias Buus) [#19337](https://github.com/nodejs/node/pull/19337) * Add `napi_fatal_exception` to trigger an `uncaughtException` in JavaScript (Mathias Buus) [#19337](https://github.com/nodejs/node/pull/19337)
* **path**: * **path**:
- Fix regression in `posix.normalize` (Michaël Zasso) [#19520](https://github.com/nodejs/node/pull/19520) * Fix regression in `posix.normalize` (Michaël Zasso) [#19520](https://github.com/nodejs/node/pull/19520)
* **stream**: * **stream**:
- Improve stream creation performance (Brian White) [#19401](https://github.com/nodejs/node/pull/19401) * Improve stream creation performance (Brian White) [#19401](https://github.com/nodejs/node/pull/19401)
* **Added new collaborators** * **Added new collaborators**
- [BethGriggs](https://github.com/BethGriggs) Beth Griggs * [BethGriggs](https://github.com/BethGriggs) Beth Griggs
### Commits ### Commits
@ -321,20 +321,20 @@ Fixes for the following CVEs are included in this release:
### Notable Changes ### Notable Changes
* **assert**: * **assert**:
- From now on all error messages produced by `assert` in strict mode will produce a error diff. (Ruben Bridgewater) [#17615](https://github.com/nodejs/node/pull/17615) * From now on all error messages produced by `assert` in strict mode will produce a error diff. (Ruben Bridgewater) [#17615](https://github.com/nodejs/node/pull/17615)
- From now on it is possible to use a validation object in throws instead of the other possibilities. (Ruben Bridgewater) [#17584](https://github.com/nodejs/node/pull/17584) * From now on it is possible to use a validation object in throws instead of the other possibilities. (Ruben Bridgewater) [#17584](https://github.com/nodejs/node/pull/17584)
* **crypto**: * **crypto**:
- allow passing null as IV unless required (Tobias Nießen) [#18644](https://github.com/nodejs/node/pull/18644) * allow passing null as IV unless required (Tobias Nießen) [#18644](https://github.com/nodejs/node/pull/18644)
* **fs**: * **fs**:
- support as and as+ flags in stringToFlags() (Sarat Addepalli) [#18801](https://github.com/nodejs/node/pull/18801) * support as and as+ flags in stringToFlags() (Sarat Addepalli) [#18801](https://github.com/nodejs/node/pull/18801)
* **tls**: * **tls**:
- expose Finished messages in TLSSocket (Anton Salikhmetov) [#19102](https://github.com/nodejs/node/pull/19102) * expose Finished messages in TLSSocket (Anton Salikhmetov) [#19102](https://github.com/nodejs/node/pull/19102)
* **tty**: * **tty**:
- Add getColorDepth function to determine if terminal supports colors. (Ruben Bridgewater) [#17615](https://github.com/nodejs/node/pull/17615) * Add getColorDepth function to determine if terminal supports colors. (Ruben Bridgewater) [#17615](https://github.com/nodejs/node/pull/17615)
* **util**: * **util**:
- add util.inspect compact option (Ruben Bridgewater) [#17576](https://github.com/nodejs/node/pull/17576) * add util.inspect compact option (Ruben Bridgewater) [#17576](https://github.com/nodejs/node/pull/17576)
* **Added new collaborators** * **Added new collaborators**
- [watson](https://github.com/watson) Thomas Watson * [watson](https://github.com/watson) Thomas Watson
### Commits ### Commits
@ -479,17 +479,17 @@ Fixes for the following CVEs are included in this release:
### Notable Changes ### Notable Changes
* **crypto**: * **crypto**:
- add cert.fingerprint256 as SHA256 fingerprint (Hannes Magnusson) [#17690](https://github.com/nodejs/node/pull/17690) * add cert.fingerprint256 as SHA256 fingerprint (Hannes Magnusson) [#17690](https://github.com/nodejs/node/pull/17690)
* **http2**: * **http2**:
- Fixed issues with aborted connections in the HTTP/2 implementation (Anna Henningsen) [#18987](https://github.com/nodejs/node/pull/18987) [#19002](https://github.com/nodejs/node/pull/19002) * Fixed issues with aborted connections in the HTTP/2 implementation (Anna Henningsen) [#18987](https://github.com/nodejs/node/pull/18987) [#19002](https://github.com/nodejs/node/pull/19002)
* **loader**: * **loader**:
- --inspect-brk now works properly for esmodules (Gus Caplan) [#18949](https://github.com/nodejs/node/pull/18949) * --inspect-brk now works properly for esmodules (Gus Caplan) [#18949](https://github.com/nodejs/node/pull/18949)
* **src**: * **src**:
- make process.dlopen() load well-known symbol (Ben Noordhuis) [#18934](https://github.com/nodejs/node/pull/18934) * make process.dlopen() load well-known symbol (Ben Noordhuis) [#18934](https://github.com/nodejs/node/pull/18934)
* **trace_events**: * **trace_events**:
- add file pattern cli option (Andreas Madsen) [#18480](https://github.com/nodejs/node/pull/18480) * add file pattern cli option (Andreas Madsen) [#18480](https://github.com/nodejs/node/pull/18480)
* **Added new collaborators** * **Added new collaborators**
- [MoonBall](https://github.com/MoonBall) Chen Gang * [MoonBall](https://github.com/MoonBall) Chen Gang
### Commits ### Commits
@ -577,16 +577,16 @@ No additional commits. New version published due to a bad node-v9.7.0.pkg file t
### Notable Changes ### Notable Changes
* **libuv**: * **libuv**:
- Updated to libuv 1.19.2 (Colin Ihrig) [#18918](https://github.com/nodejs/node/pull/18918) * Updated to libuv 1.19.2 (Colin Ihrig) [#18918](https://github.com/nodejs/node/pull/18918)
* **src**: * **src**:
- Add initial support for Node.js-specific post-mortem metadata (Matheus Marchini) [#14901](https://github.com/nodejs/node/pull/14901) * Add initial support for Node.js-specific post-mortem metadata (Matheus Marchini) [#14901](https://github.com/nodejs/node/pull/14901)
* **timers**: * **timers**:
- The return value of `setImmediate()` now has `ref()` and `unref()` methods (Anatoli Papirovski) [#18139](https://github.com/nodejs/node/pull/18139) * The return value of `setImmediate()` now has `ref()` and `unref()` methods (Anatoli Papirovski) [#18139](https://github.com/nodejs/node/pull/18139)
* **util**: * **util**:
- It is now possible to get the name for a numerical platform-specific error code as a string (Joyee Cheung) [#18186](https://github.com/nodejs/node/pull/18186) * It is now possible to get the name for a numerical platform-specific error code as a string (Joyee Cheung) [#18186](https://github.com/nodejs/node/pull/18186)
### Commits ### Commits
@ -666,7 +666,7 @@ This is a special release to fix potentially Semver-Major regression that was re
### Notable Changes ### Notable Changes
* **events**: * **events**:
- `events.usingDomains` being set to `false` by default was removed in 9.6.0 which was a change in behavior compares to 9.5.0. This behavior change has been reverted and the `events` object now has `usingDomains` preset to `false`, which is the behavior in 9.x prior to 9.6.0 (Myles Borins) [#18944](https://github.com/nodejs/node/pull/18944) * `events.usingDomains` being set to `false` by default was removed in 9.6.0 which was a change in behavior compares to 9.5.0. This behavior change has been reverted and the `events` object now has `usingDomains` preset to `false`, which is the behavior in 9.x prior to 9.6.0 (Myles Borins) [#18944](https://github.com/nodejs/node/pull/18944)
### Commits ### Commits
@ -678,31 +678,31 @@ This is a special release to fix potentially Semver-Major regression that was re
### Notable Changes ### Notable Changes
* **async_hooks**: * **async_hooks**:
- deprecate unsafe emit{Before,After} (Ali Ijaz Sheikh) [#18513](https://github.com/nodejs/node/pull/18513) * deprecate unsafe emit{Before,After} (Ali Ijaz Sheikh) [#18513](https://github.com/nodejs/node/pull/18513)
- rename PromiseWrap.parentId to PromiseWrap.isChainedPromise (Ali Ijaz Sheikh) [#18633](https://github.com/nodejs/node/pull/18633) * rename PromiseWrap.parentId to PromiseWrap.isChainedPromise (Ali Ijaz Sheikh) [#18633](https://github.com/nodejs/node/pull/18633)
* **deps**: * **deps**:
- update node-inspect to 1.11.3 (Jan Krems) [#18354](https://github.com/nodejs/node/pull/18354) * update node-inspect to 1.11.3 (Jan Krems) [#18354](https://github.com/nodejs/node/pull/18354)
- ICU 60.2 bump (Steven R. Loomis) [#17687](https://github.com/nodejs/node/pull/17687) * ICU 60.2 bump (Steven R. Loomis) [#17687](https://github.com/nodejs/node/pull/17687)
- Introduce ScriptOrModule and HostDefinedOptions to V8 (Jan Krems) [#16889](https://github.com/nodejs/node/pull/16889) * Introduce ScriptOrModule and HostDefinedOptions to V8 (Jan Krems) [#16889](https://github.com/nodejs/node/pull/16889)
* **http**: * **http**:
- add options to http.createServer() for `IncomingMessage` and `ServerReponse` (Peter Marton) [#15752](https://github.com/nodejs/node/pull/15752) * add options to http.createServer() for `IncomingMessage` and `ServerReponse` (Peter Marton) [#15752](https://github.com/nodejs/node/pull/15752)
* **http2**: * **http2**:
- add http fallback options to .createServer (Peter Marton) [#15752](https://github.com/nodejs/node/pull/15752) * add http fallback options to .createServer (Peter Marton) [#15752](https://github.com/nodejs/node/pull/15752)
* **https**: * **https**:
- Adds the remaining options from tls.createSecureContext() to the string generated by Agent#getName(). This allows https.request() to accept the options and generate unique sockets appropriately. (Jeff Principe) [#16402](https://github.com/nodejs/node/pull/16402) * Adds the remaining options from tls.createSecureContext() to the string generated by Agent#getName(). This allows https.request() to accept the options and generate unique sockets appropriately. (Jeff Principe) [#16402](https://github.com/nodejs/node/pull/16402)
* **inspector**: * **inspector**:
- --inspect-brk for es modules (Guy Bedford) [#18194](https://github.com/nodejs/node/pull/18194) * --inspect-brk for es modules (Guy Bedford) [#18194](https://github.com/nodejs/node/pull/18194)
* **lib**: * **lib**:
- allow process kill by signal number (Sam Roberts) [#16944](https://github.com/nodejs/node/pull/16944) * allow process kill by signal number (Sam Roberts) [#16944](https://github.com/nodejs/node/pull/16944)
* **module**: * **module**:
- enable dynamic import (Myles Borins) [#18387](https://github.com/nodejs/node/pull/18387) * enable dynamic import (Myles Borins) [#18387](https://github.com/nodejs/node/pull/18387)
- dynamic import is now supported (Jan Krems) [#15713](https://github.com/nodejs/node/pull/15713) * dynamic import is now supported (Jan Krems) [#15713](https://github.com/nodejs/node/pull/15713)
* **n-api**: * **n-api**:
- add methods to open/close callback scope (Michael Dawson) [#18089](https://github.com/nodejs/node/pull/18089) * add methods to open/close callback scope (Michael Dawson) [#18089](https://github.com/nodejs/node/pull/18089)
* **src**: * **src**:
- allow --perf-(basic-)?prof in NODE_OPTIONS (Leko) [#17600](https://github.com/nodejs/node/pull/17600) * allow --perf-(basic-)?prof in NODE_OPTIONS (Leko) [#17600](https://github.com/nodejs/node/pull/17600)
* **vm**: * **vm**:
- add support for es modules (Gus Caplan) [#17560](https://github.com/nodejs/node/pull/17560) * add support for es modules (Gus Caplan) [#17560](https://github.com/nodejs/node/pull/17560)
### Commits ### Commits
@ -918,18 +918,18 @@ This is a special release to fix potentially Semver-Major regression that was re
### Notable Changes ### Notable Changes
* **cluster** * **cluster**
- add cwd to cluster.settings (cjihrig) [#18399](https://github.com/nodejs/node/pull/18399) * add cwd to cluster.settings (cjihrig) [#18399](https://github.com/nodejs/node/pull/18399)
* **deps** * **deps**
- upgrade libuv to 1.19.1 (cjihrig) [#18260](https://github.com/nodejs/node/pull/18260) * upgrade libuv to 1.19.1 (cjihrig) [#18260](https://github.com/nodejs/node/pull/18260)
* **meta** * **meta**
- add Leko to collaborators (Leko) [#18117](https://github.com/nodejs/node/pull/18117) * add Leko to collaborators (Leko) [#18117](https://github.com/nodejs/node/pull/18117)
- add vdeturckheim as collaborator (vdeturckheim) [#18432](https://github.com/nodejs/node/pull/18432) * add vdeturckheim as collaborator (vdeturckheim) [#18432](https://github.com/nodejs/node/pull/18432)
* **n-api** * **n-api**
- expose n-api version in process.versions (Michael Dawson) [#18067](https://github.com/nodejs/node/pull/18067) * expose n-api version in process.versions (Michael Dawson) [#18067](https://github.com/nodejs/node/pull/18067)
* **perf_hooks** * **perf_hooks**
- add performance.clear() (James M Snell) [#18046](https://github.com/nodejs/node/pull/18046) * add performance.clear() (James M Snell) [#18046](https://github.com/nodejs/node/pull/18046)
* **stream** * **stream**
- avoid writeAfterEnd() while ending (陈刚) [#18170](https://github.com/nodejs/node/pull/18170) * avoid writeAfterEnd() while ending (陈刚) [#18170](https://github.com/nodejs/node/pull/18170)
### Commits ### Commits
@ -1101,36 +1101,36 @@ This is a special release to fix potentially Semver-Major regression that was re
### Notable Changes ### Notable Changes
* **async\_hooks**: * **async\_hooks**:
- deprecate AsyncHooks Sensitive API and runInAsyncIdScope. Neither API were documented. (Andreas Madsen) [#16972](https://github.com/nodejs/node/pull/16972) * deprecate AsyncHooks Sensitive API and runInAsyncIdScope. Neither API were documented. (Andreas Madsen) [#16972](https://github.com/nodejs/node/pull/16972)
* **deps**: * **deps**:
- update nghttp2 to 1.29.0 (James M Snell) [#17908](https://github.com/nodejs/node/pull/17908) * update nghttp2 to 1.29.0 (James M Snell) [#17908](https://github.com/nodejs/node/pull/17908)
- upgrade npm to 5.6.0 (Kat Marchán) [#17535](https://github.com/nodejs/node/pull/17535) * upgrade npm to 5.6.0 (Kat Marchán) [#17535](https://github.com/nodejs/node/pull/17535)
- cherry-pick 50f7455 from upstream V8 (Michaël Zasso) [#16591](https://github.com/nodejs/node/pull/16591) * cherry-pick 50f7455 from upstream V8 (Michaël Zasso) [#16591](https://github.com/nodejs/node/pull/16591)
* **events**: * **events**:
- remove reaches into _events internals (Anatoli Papirovski) [#17440](https://github.com/nodejs/node/pull/17440) * remove reaches into _events internals (Anatoli Papirovski) [#17440](https://github.com/nodejs/node/pull/17440)
* **http**: * **http**:
- add rawPacket in err of `clientError` event (XadillaX) [#17672](https://github.com/nodejs/node/pull/17672) * add rawPacket in err of `clientError` event (XadillaX) [#17672](https://github.com/nodejs/node/pull/17672)
* **http2**: * **http2**:
- implement maxSessionMemory (James M Snell) [#17967](https://github.com/nodejs/node/pull/17967) * implement maxSessionMemory (James M Snell) [#17967](https://github.com/nodejs/node/pull/17967)
- add initial support for originSet (James M Snell) [#17935](https://github.com/nodejs/node/pull/17935) * add initial support for originSet (James M Snell) [#17935](https://github.com/nodejs/node/pull/17935)
- add altsvc support (James M Snell) [#17917](https://github.com/nodejs/node/pull/17917) * add altsvc support (James M Snell) [#17917](https://github.com/nodejs/node/pull/17917)
- perf_hooks integration (James M Snell) [#17906](https://github.com/nodejs/node/pull/17906) * perf_hooks integration (James M Snell) [#17906](https://github.com/nodejs/node/pull/17906)
- Refactoring and cleanup of Http2Session and Http2Stream destroy (James M Snell) [#17406](https://github.com/nodejs/node/pull/17406) * Refactoring and cleanup of Http2Session and Http2Stream destroy (James M Snell) [#17406](https://github.com/nodejs/node/pull/17406)
* **net**: * **net**:
- remove Socket.prototype.listen (Ruben Bridgewater) [#13735](https://github.com/nodejs/node/pull/13735) * remove Socket.prototype.listen (Ruben Bridgewater) [#13735](https://github.com/nodejs/node/pull/13735)
* **repl**: * **repl**:
- show lexically scoped vars in tab completion (Michaël Zasso) [#16591](https://github.com/nodejs/node/pull/16591) * show lexically scoped vars in tab completion (Michaël Zasso) [#16591](https://github.com/nodejs/node/pull/16591)
* **stream**: * **stream**:
- rm {writeable/readable}State.length (Calvin Metcalf) [#12857](https://github.com/nodejs/node/pull/12857) * rm {writeable/readable}State.length (Calvin Metcalf) [#12857](https://github.com/nodejs/node/pull/12857)
- add flow and buffer properties to streams (Calvin Metcalf) [#12855](https://github.com/nodejs/node/pull/12855) * add flow and buffer properties to streams (Calvin Metcalf) [#12855](https://github.com/nodejs/node/pull/12855)
* **util**: * **util**:
- allow wildcards in NODE_DEBUG variable (Tyler) [#17609](https://github.com/nodejs/node/pull/17609) * allow wildcards in NODE_DEBUG variable (Tyler) [#17609](https://github.com/nodejs/node/pull/17609)
* **zlib**: * **zlib**:
- add ArrayBuffer support (Jem Bezooyen) [#16042](https://github.com/nodejs/node/pull/16042) * add ArrayBuffer support (Jem Bezooyen) [#16042](https://github.com/nodejs/node/pull/16042)
* **Added new collaborator** * **Added new collaborator**
- [starkwang](https://github.com/starkwang) Weijia Wang * [starkwang](https://github.com/starkwang) Weijia Wang
* **Added new TSC member** * **Added new TSC member**
- [danbev](https://github.com/danbev) Daniel Bevenius * [danbev](https://github.com/danbev) Daniel Bevenius
### Commits ### Commits
@ -1376,24 +1376,24 @@ This is a special release to fix potentially Semver-Major regression that was re
### Notable Changes ### Notable Changes
* **async\_hooks**: * **async\_hooks**:
- add trace events to async_hooks (Andreas Madsen) [#15538](https://github.com/nodejs/node/pull/15538) * add trace events to async_hooks (Andreas Madsen) [#15538](https://github.com/nodejs/node/pull/15538)
- add provider types for net server (Andreas Madsen) [#17157](https://github.com/nodejs/node/pull/17157) * add provider types for net server (Andreas Madsen) [#17157](https://github.com/nodejs/node/pull/17157)
* **console**: * **console**:
- console.debug can now be used outside of the inspector (Benjamin Zaslavsky) [#17033](https://github.com/nodejs/node/pull/17033) * console.debug can now be used outside of the inspector (Benjamin Zaslavsky) [#17033](https://github.com/nodejs/node/pull/17033)
* **deps**: * **deps**:
- upgrade libuv to 1.18.0 (cjihrig) [#17282](https://github.com/nodejs/node/pull/17282) * upgrade libuv to 1.18.0 (cjihrig) [#17282](https://github.com/nodejs/node/pull/17282)
- patch V8 to 6.2.414.46 (Myles Borins) [#17206](https://github.com/nodejs/node/pull/17206) * patch V8 to 6.2.414.46 (Myles Borins) [#17206](https://github.com/nodejs/node/pull/17206)
* **module**: * **module**:
- module.builtinModules will return a list of built in modules (Jon Moss) [#16386](https://github.com/nodejs/node/pull/16386) * module.builtinModules will return a list of built in modules (Jon Moss) [#16386](https://github.com/nodejs/node/pull/16386)
* **n-api**: * **n-api**:
- add helper for addons to get the event loop (Anna Henningsen) [#17109](https://github.com/nodejs/node/pull/17109) * add helper for addons to get the event loop (Anna Henningsen) [#17109](https://github.com/nodejs/node/pull/17109)
* **process**: * **process**:
- process.setUncaughtExceptionCaptureCallback can now be used to customize behavior for `--abort-on-uncaught-exception` (Anna Henningsen) [#17159](https://github.com/nodejs/node/pull/17159) * process.setUncaughtExceptionCaptureCallback can now be used to customize behavior for `--abort-on-uncaught-exception` (Anna Henningsen) [#17159](https://github.com/nodejs/node/pull/17159)
- A signal handler is now able to receive the signal code that triggered the handler. (Robert Rossmann) [#15606](https://github.com/nodejs/node/pull/15606) * A signal handler is now able to receive the signal code that triggered the handler. (Robert Rossmann) [#15606](https://github.com/nodejs/node/pull/15606)
* **src**: * **src**:
- embedders can now use Node::CreatePlatform to create an instance of NodePlatform (Cheng Zhao) [#16981](https://github.com/nodejs/node/pull/16981) * embedders can now use Node::CreatePlatform to create an instance of NodePlatform (Cheng Zhao) [#16981](https://github.com/nodejs/node/pull/16981)
* **stream**: * **stream**:
- writable.writableHighWaterMark and readable.readableHighWaterMark will return the values the stream object was instantiated with (Calvin Metcalf) [#12860](https://github.com/nodejs/node/pull/12860) * writable.writableHighWaterMark and readable.readableHighWaterMark will return the values the stream object was instantiated with (Calvin Metcalf) [#12860](https://github.com/nodejs/node/pull/12860)
* **Added new collaborators** * **Added new collaborators**
* [maclover7](https://github.com/maclover7) Jon Moss * [maclover7](https://github.com/maclover7) Jon Moss
* [guybedford](https://github.com/guybedford) Guy Bedford * [guybedford](https://github.com/guybedford) Guy Bedford
@ -1820,11 +1820,11 @@ Fixes for the following CVEs are included in this release:
### Notable Changes ### Notable Changes
* **crypto**: * **crypto**:
- Support building with both 1.1.0 and 1.0.2 (David Benjamin) [#16130](https://github.com/nodejs/node/pull/16130) * Support building with both 1.1.0 and 1.0.2 (David Benjamin) [#16130](https://github.com/nodejs/node/pull/16130)
* **fs**: * **fs**:
- fs.realpathSync.native and fs.realpath.native are now exposed (Ben Noordhuis) [#15776](https://github.com/nodejs/node/pull/15776) * fs.realpathSync.native and fs.realpath.native are now exposed (Ben Noordhuis) [#15776](https://github.com/nodejs/node/pull/15776)
* **process**: * **process**:
- expose process.ppid (cjihrig) [#16839](https://github.com/nodejs/node/pull/16839) * expose process.ppid (cjihrig) [#16839](https://github.com/nodejs/node/pull/16839)
### Commits ### Commits
@ -1968,12 +1968,12 @@ Fixes for the following CVEs are included in this release:
### Notable Changes ### Notable Changes
* **CLI**: * **CLI**:
- `NODE_OPTIONS` now supports the `--stack-trace-limit` option. [#16495](https://github.com/nodejs/node/pull/16495) * `NODE_OPTIONS` now supports the `--stack-trace-limit` option. [#16495](https://github.com/nodejs/node/pull/16495)
* **deps**: * **deps**:
- OpenSSL is upgraded to 1.0.2m [#16691](https://github.com/nodejs/node/pull/16691) * OpenSSL is upgraded to 1.0.2m [#16691](https://github.com/nodejs/node/pull/16691)
* **http**: * **http**:
- A `'connect'` event handler leak has been fixed. [#16725](https://github.com/nodejs/node/pull/16725) * A `'connect'` event handler leak has been fixed. [#16725](https://github.com/nodejs/node/pull/16725)
- The `103 Early Hints` status code is now supported. [#16644](https://github.com/nodejs/node/pull/16644) * The `103 Early Hints` status code is now supported. [#16644](https://github.com/nodejs/node/pull/16644)
### Commits ### Commits

View File

@ -106,10 +106,10 @@ $ git checkout -b my-branch -t upstream/master
The vast majority of Pull Requests opened against the `nodejs/node` The vast majority of Pull Requests opened against the `nodejs/node`
repository includes changes to one or more of the following: repository includes changes to one or more of the following:
- the C/C++ code contained in the `src` directory * the C/C++ code contained in the `src` directory
- the JavaScript code contained in the `lib` directory * the JavaScript code contained in the `lib` directory
- the documentation in `doc/api` * the documentation in `doc/api`
- tests within the `test` directory. * tests within the `test` directory.
If you are modifying code, please be sure to run `make lint` from time to If you are modifying code, please be sure to run `make lint` from time to
time to ensure that the changes follow the Node.js code style guide. time to ensure that the changes follow the Node.js code style guide.
@ -143,17 +143,17 @@ notes about [commit squashing](#commit-squashing).
A good commit message should describe what changed and why. A good commit message should describe what changed and why.
1. The first line should: 1. The first line should:
- contain a short description of the change (preferably 50 characters or * contain a short description of the change (preferably 50 characters or
less, and no more than 72 characters) less, and no more than 72 characters)
- be entirely in lowercase with the exception of proper nouns, acronyms, and * be entirely in lowercase with the exception of proper nouns, acronyms, and
the words that refer to code, like function/variable names the words that refer to code, like function/variable names
- be prefixed with the name of the changed subsystem and start with an * be prefixed with the name of the changed subsystem and start with an
imperative verb. Check the output of `git log --oneline files/you/changed` to imperative verb. Check the output of `git log --oneline files/you/changed` to
find out what subsystems your changes touch. find out what subsystems your changes touch.
Examples: Examples:
- `net: add localAddress and localPort to Socket` * `net: add localAddress and localPort to Socket`
- `src: fix typos in async_wrap.h` * `src: fix typos in async_wrap.h`
2. Keep the second line blank. 2. Keep the second line blank.
3. Wrap all other lines at 72 columns (except for long URLs). 3. Wrap all other lines at 72 columns (except for long URLs).
@ -163,9 +163,9 @@ A good commit message should describe what changed and why.
references use `Refs:`. references use `Refs:`.
Examples: Examples:
- `Fixes: https://github.com/nodejs/node/issues/1337` * `Fixes: https://github.com/nodejs/node/issues/1337`
- `Refs: https://eslint.org/docs/rules/space-in-parens.html` * `Refs: https://eslint.org/docs/rules/space-in-parens.html`
- `Refs: https://github.com/nodejs/node/pull/3615` * `Refs: https://github.com/nodejs/node/pull/3615`
5. If your commit introduces a breaking change (`semver-major`), it should 5. If your commit introduces a breaking change (`semver-major`), it should
contain an explanation about the reason of the breaking change, which contain an explanation about the reason of the breaking change, which

View File

@ -8,17 +8,17 @@ On how to build the Node.js core, see [Building Node.js](../../BUILDING.md).
There are three main build files that may be directly run when building Node.js: There are three main build files that may be directly run when building Node.js:
- `configure`: A Python 2 script that detects system capabilities and runs * `configure`: A Python 2 script that detects system capabilities and runs
[GYP][]. It generates `config.gypi` which includes parameters used by GYP to [GYP][]. It generates `config.gypi` which includes parameters used by GYP to
create platform-dependent build files. Its output is usually in one of these create platform-dependent build files. Its output is usually in one of these
formats: Makefile, MSbuild, ninja, or XCode project files (the main formats: Makefile, MSbuild, ninja, or XCode project files (the main
Makefile mentioned below is maintained separately by humans). For a detailed Makefile mentioned below is maintained separately by humans). For a detailed
guide on this script, see [configure](#configure). guide on this script, see [configure](#configure).
- `vcbuild.bat`: A Windows Batch Script that locates build tools, provides a * `vcbuild.bat`: A Windows Batch Script that locates build tools, provides a
subset of the targets available in the [Makefile](#makefile), and a few subset of the targets available in the [Makefile](#makefile), and a few
targets of its own. For a detailed guide on this script, see targets of its own. For a detailed guide on this script, see
[vcbuild.bat](#vcbuildbat). [vcbuild.bat](#vcbuildbat).
- `Makefile`: A Makefile that can be run with GNU Make. It provides a set of * `Makefile`: A Makefile that can be run with GNU Make. It provides a set of
targets that build and test the Node.js binary, produce releases and targets that build and test the Node.js binary, produce releases and
documentation, and interact with the CI to run benchmarks or tests. For a documentation, and interact with the CI to run benchmarks or tests. For a
detailed guide on this file, see [Makefile](#makefile). detailed guide on this file, see [Makefile](#makefile).
@ -45,7 +45,7 @@ maintained by humans. This is not usually run on Windows, where
### Options ### Options
- `-j <n>`: number of threads used to build the binary. On the non-CI * `-j <n>`: number of threads used to build the binary. On the non-CI
targets, the parallel tests will take up all the available cores, regardless targets, the parallel tests will take up all the available cores, regardless
of this option. of this option.

View File

@ -6,17 +6,17 @@ Most tests in Node.js core are JavaScript programs that exercise a functionality
provided by Node.js and check that it behaves as expected. Tests should exit provided by Node.js and check that it behaves as expected. Tests should exit
with code `0` on success. A test will fail if: with code `0` on success. A test will fail if:
- It exits by setting `process.exitCode` to a non-zero number. * It exits by setting `process.exitCode` to a non-zero number.
- This is usually done by having an assertion throw an uncaught Error. * This is usually done by having an assertion throw an uncaught Error.
- Occasionally, using `process.exit(code)` may be appropriate. * Occasionally, using `process.exit(code)` may be appropriate.
- It never exits. In this case, the test runner will terminate the test because * It never exits. In this case, the test runner will terminate the test because
it sets a maximum time limit. it sets a maximum time limit.
Add tests when: Add tests when:
- Adding new functionality. * Adding new functionality.
- Fixing regressions and bugs. * Fixing regressions and bugs.
- Expanding test coverage. * Expanding test coverage.
## Test directory structure ## Test directory structure
@ -113,14 +113,14 @@ This is the body of the test. This test is simple, it just tests that an
HTTP server accepts `non-ASCII` characters in the headers of an incoming HTTP server accepts `non-ASCII` characters in the headers of an incoming
request. Interesting things to notice: request. Interesting things to notice:
- If the test doesn't depend on a specific port number, then always use 0 * If the test doesn't depend on a specific port number, then always use 0
instead of an arbitrary value, as it allows tests to run in parallel safely, instead of an arbitrary value, as it allows tests to run in parallel safely,
as the operating system will assign a random port. If the test requires a as the operating system will assign a random port. If the test requires a
specific port, for example if the test checks that assigning a specific port specific port, for example if the test checks that assigning a specific port
works as expected, then it is ok to assign a specific port number. works as expected, then it is ok to assign a specific port number.
- The use of `common.mustCall` to check that some callbacks/listeners are * The use of `common.mustCall` to check that some callbacks/listeners are
called. called.
- The HTTP server closes once all the checks have run. This way, the test can * The HTTP server closes once all the checks have run. This way, the test can
exit gracefully. Remember that for a test to succeed, it must exit with a exit gracefully. Remember that for a test to succeed, it must exit with a
status code of 0. status code of 0.
@ -268,8 +268,8 @@ const freelist = require('internal/freelist');
When writing assertions, prefer the strict versions: When writing assertions, prefer the strict versions:
- `assert.strictEqual()` over `assert.equal()` * `assert.strictEqual()` over `assert.equal()`
- `assert.deepStrictEqual()` over `assert.deepEqual()` * `assert.deepStrictEqual()` over `assert.deepEqual()`
When using `assert.throws()`, if possible, provide the full error message: When using `assert.throws()`, if possible, provide the full error message:
@ -318,9 +318,9 @@ features that can be used directly without a flag in
[all maintained branches][]. [node.green][] lists available features [all maintained branches][]. [node.green][] lists available features
in each release, such as: in each release, such as:
- `let` and `const` over `var` * `let` and `const` over `var`
- Template literals over string concatenation * Template literals over string concatenation
- Arrow functions when appropriate * Arrow functions when appropriate
## Naming Test Files ## Naming Test Files

View File

@ -105,11 +105,11 @@ should be listed in the Node.js GitHub README.md file.
Notes: Notes:
- Dates listed below as _"YYYY-MM-DD"_ should be the date of the release **as * Dates listed below as _"YYYY-MM-DD"_ should be the date of the release **as
UTC**. Use `date -u +'%Y-%m-%d'` to find out what this is. UTC**. Use `date -u +'%Y-%m-%d'` to find out what this is.
- Version strings are listed below as _"vx.y.z"_ or _"x.y.z"_. Substitute for * Version strings are listed below as _"vx.y.z"_ or _"x.y.z"_. Substitute for
the release version. the release version.
- Examples will use the fictional release version `1.2.3`. * Examples will use the fictional release version `1.2.3`.
### 0. Pre-release steps ### 0. Pre-release steps
@ -145,10 +145,10 @@ Go through PRs with the label `vN.x`. e.g. [PRs with the `v8.x` label](https://g
For each PR: For each PR:
- Run or check that there is a passing CI. * Run or check that there is a passing CI.
- Check approvals (you can approve yourself). * Check approvals (you can approve yourself).
- Check that the commit metadata was not changed from the `master` commit. * Check that the commit metadata was not changed from the `master` commit.
- If there are merge conflicts, ask the PR author to rebase. * If there are merge conflicts, ask the PR author to rebase.
Simple conflicts can be resolved when landing. Simple conflicts can be resolved when landing.
When landing the PR add the `Backport-PR-URL:` line to each commit. Close the When landing the PR add the `Backport-PR-URL:` line to each commit. Close the
@ -174,11 +174,11 @@ cherry-picked.
Carefully review the list of commits: Carefully review the list of commits:
- Checking for errors (incorrect `PR-URL`) * Checking for errors (incorrect `PR-URL`)
- Checking semver status - Commits labeled as `semver-minor` or `semver-major` * Checking semver status - Commits labeled as `semver-minor` or `semver-major`
should only be cherry-picked when appropriate for the type of release being should only be cherry-picked when appropriate for the type of release being
made. made.
- If you think it's risky so should wait for a while, add the `baking-for-lts` * If you think it's risky so should wait for a while, add the `baking-for-lts`
tag. tag.
When cherry-picking commits, if there are simple conflicts you can resolve When cherry-picking commits, if there are simple conflicts you can resolve
@ -225,10 +225,10 @@ be produced with a version string that does not have a trailing pre-release tag:
This macro is used to signal an ABI version for native addons. It currently has This macro is used to signal an ABI version for native addons. It currently has
two common uses in the community: two common uses in the community:
- Determining what API to work against for compiling native addons, e.g. * Determining what API to work against for compiling native addons, e.g.
[NAN](https://github.com/nodejs/nan) uses it to form a compatibility-layer for [NAN](https://github.com/nodejs/nan) uses it to form a compatibility-layer for
much of what it wraps. much of what it wraps.
- Determining the ABI for downloading pre-built binaries of native addons, e.g. * Determining the ABI for downloading pre-built binaries of native addons, e.g.
[node-pre-gyp](https://github.com/mapbox/node-pre-gyp) uses this value as [node-pre-gyp](https://github.com/mapbox/node-pre-gyp) uses this value as
exposed via `process.versions.modules` to help determine the appropriate exposed via `process.versions.modules` to help determine the appropriate
binary to download at install-time. binary to download at install-time.
@ -504,8 +504,8 @@ remainder of the release steps.
On release proposal branch, edit `src/node_version.h` again and: On release proposal branch, edit `src/node_version.h` again and:
- Increment `NODE_PATCH_VERSION` by one * Increment `NODE_PATCH_VERSION` by one
- Change `NODE_VERSION_IS_RELEASE` back to `0` * Change `NODE_VERSION_IS_RELEASE` back to `0`
Commit this change with the following commit message format: Commit this change with the following commit message format:
@ -610,16 +610,16 @@ This script will use the promoted builds and changelog to generate the post. Run
`npm run serve` to preview the post locally before pushing to the `npm run serve` to preview the post locally before pushing to the
[nodejs.org](https://github.com/nodejs/nodejs.org) repo. [nodejs.org](https://github.com/nodejs/nodejs.org) repo.
- You can add a short blurb just under the main heading if you want to say * You can add a short blurb just under the main heading if you want to say
something important, otherwise the text should be publication ready. something important, otherwise the text should be publication ready.
- The links to the download files won't be complete unless you waited for the * The links to the download files won't be complete unless you waited for the
ARMv6 builds. Any downloads that are missing will have `*Coming soon*` next to ARMv6 builds. Any downloads that are missing will have `*Coming soon*` next to
them. It's your responsibility to manually update these later when you have them. It's your responsibility to manually update these later when you have
the outstanding builds. the outstanding builds.
- The SHASUMS256.txt.asc content is at the bottom of the post. When you update * The SHASUMS256.txt.asc content is at the bottom of the post. When you update
the list of tarballs you'll need to copy/paste the new contents of this file the list of tarballs you'll need to copy/paste the new contents of this file
to reflect those changes. to reflect those changes.
- Always use pull-requests on the nodejs.org repo. Be respectful of that working * Always use pull-requests on the nodejs.org repo. Be respectful of that working
group, but you shouldn't have to wait for PR sign-off. Opening a PR and group, but you shouldn't have to wait for PR sign-off. Opening a PR and
merging it immediately _should_ be fine. However, please follow the following merging it immediately _should_ be fine. However, please follow the following
commit message format: commit message format:
@ -630,16 +630,16 @@ This script will use the promoted builds and changelog to generate the post. Run
Refs: <full URL to your release proposal PR> Refs: <full URL to your release proposal PR>
``` ```
- Changes to `master` on the nodejs.org repo will trigger a new build of * Changes to `master` on the nodejs.org repo will trigger a new build of
nodejs.org so your changes should appear in a few minutes after pushing. nodejs.org so your changes should appear in a few minutes after pushing.
### 16. Create the release on GitHub ### 16. Create the release on GitHub
- Go to the [New release page](https://github.com/nodejs/node/releases/new). * Go to the [New release page](https://github.com/nodejs/node/releases/new).
- Select the tag version you pushed earlier. * Select the tag version you pushed earlier.
- For release title, copy the title from the changelog. * For release title, copy the title from the changelog.
- For the description, copy the rest of the changelog entry. * For the description, copy the rest of the changelog entry.
- Click on the "Publish release" button. * Click on the "Publish release" button.
### 17. Cleanup ### 17. Cleanup