This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
Breaking changes between v6 and v7
When editing this page please be as detailed as possible.
For older breaking changes, please see our v5 to v6 page.
62 commits were tagged semver-major
.
Note to readers: #
is synonymous with .prototype.
, and indicates the property is available on instances of that class.
Example: Object#toString()
is equivalent to Object.prototype.toString()
.
By Subsystem
buffer
[Docs]
Buffer.byteLength()
now throws if the input is not a String, Buffer, or ArrayBuffer.- Refs: [
96b501d338
], #8946
- Refs: [
- Constructing Buffers via
Buffer()
without usingnew
is now deprecated.- More info is avaliable on the new Buffer construction APIs.
- Refs: [
f2fe5583c4
], #8169
Buffer#toLocaleString()
is now an alias toBuffer#toString()
.- Refs: [
9cee8b1b62
], #8148
- Refs: [
Buffer.allocUnsafe()
now throws on negative input.- Refs: [
8f90dcc1b8
], #7079
- Refs: [
child_process
[Docs]
child_process.fork()
andchild_process.exec()
now do stricter argument validation.- Refs: [
0548e5d12a
], #7399
- Refs: [
child_process.spawn()
now spawns processes with the/d
flag on Windows.- This turns off Windows
AutoRun
functionality by default for spawned processes. - Refs: [
b90f3da9de
], #8063
- This turns off Windows
cluster
[Docs]
- The unfortunately named
worker.suicide
property has been deprecated in favor ofworker.exitedAfterDisconnect
.- Refs: [
f44b18f010
], #3747
- Refs: [
crypto
[Docs]
- The
ECDH
’hybrid’
format option has been undocumented.- (Hybrid keys are illegal in X.509 certificates.)
- Refs: [
f4aa2c2c93
], #4956
debugger
[Docs]
- The debugger now once again listens on
127.0.0.1
by default.- Faulty behaviour causing the debugger to listen on
0.0.0.0
had been introduced in 0.11.13. - Refs: [
8e7cbe2546
], #8106
- Faulty behaviour causing the debugger to listen on
dgram
[Docs]
- All internal checks in
dgram
now use strict equality (type validation).- Most of these were checks for constants of some form.
- Refs: [
e9b6fbbf17
], #8011
- The remaining one-line trace of
unix_dgram
has been removed.- Unix datagram support was removed 5 years ago.
- Refs: [
6a3dbdacd6
], #8088
domain
[Docs]
- The already-deprecated
Domain#dispose()
now has a custom deprecation message.- Refs: [
3b8ec68a3a
], #7053
- Refs: [
events
[Docs]
- The potential event listeners memory leak warning is now named
MaxListenersExceededWarning
.- Refs: [
983775d457
], #8341
- Refs: [
EventEmitter#listeners()
not longer returns theonce
function wrappers for listeners registered viaEventEmitter#once()
.- Refs: [
b7a8a691b4
], #6881
- Refs: [
fs
[Docs]
- Support for re-evaluating the
fs
module has now been dropped entirely.- This is a necessary step in improving the maintainability of Node.js core.
- (The graceful-fs module will need to be updated to v4.x in all dependency trees.)
- Refs: [
49ef3ae90a
], #6413
fs._stringToFlags()
has been removed and moved tolib/internal
.- Refs: [
7f7d1d385d
], #7162
- Refs: [
- Options object processing has been refactored for any
fs
methods that use options objects.- The error message for when an options argument is not an object has changed slightly.
- Refs: [
169f485289
], #7165
Previously: "options" argument must be a string or an object
Now: "options" must be a string or an object
- The
’stop’
event emitted fromfs.FSWatcher
is now asynchronously emitted.- This prevents a potential infinite loop if stop is called synchronously after a listener is added.
- Refs: [
21124ba23a
], #8524
- Calling async
fs
methods without a callback is now deprecated.- Refs: [
f8f283b8f3
], #7897, [9359de9dd2
], #7168
- Refs: [
- File Descriptors are now validated more strictly.
- They must be valid unsigned 32-bit integers.
- Refs: [
c86c1eeab5
], #2498
http
[Docs]
- The long-deprecated legacy
http.createClient()
interface has been removed.- Refs: [
2cc7fa5e7d
], #8104
- Refs: [
- The error message for invalid
trailer
s has been corrected.- Refs: [
31bef6b704
], #6308
- Refs: [
Previously: The header content contains invalid characters
Now: The trailer content contains invalid characters
inspector
--inspect
now attaches toprocess.debugPort
by default.- Refs: [
9f1f7e2a34
], #8386
- Refs: [
intl
- The V8-specific
intl
object functionv8BreakIterator()
has been deprecated.- Refs: [
9ad3082b1c
], #8908
- Refs: [
module
[Docs]
- The previously deprecated legacy
module.requireRepl()
function has been removed.- Refs: [
d582193613
], #8575
- Refs: [
net
[Docs]
net.Server#listen()
has been refactored and invalid option errors may differ slightly.- Refs: [
fd6af98c2d
], #4039
- Refs: [
os
[Docs]
os.tmpDir()
has been deprecated in favor ofos.tmpdir()
, which was added as a replacement 3 years ago.- Refs: [
5e5ec2cd1e
], #6739
- Refs: [
process
[Docs]
- The previously deprecated
process.EventEmitter
has been removed.- Was deprecated in v6.0.0.
- Refs: [
62b544290a
], #6862
- The
unhandledRejection
process event default handler now emits warnings for unhandled Promise rejections.- This can be overridden by listening to the
’unhandledRejection’
process event. - In the future as noted by the deprecation, unhandled Promises will terminate the node process with a non-zero exit code. (Likely on garbage collection.)
- Refs: [
ecf474ceba
], #8217, [07dbf7313d
], #8217
- This can be overridden by listening to the
punycode
[Docs]
- The punycode module is now deprecated in the docs, it’s functionality being replaced internally by ICU.
- Refs: [
29e49fc286
], #7941
- Refs: [
readline
[Docs]
- Readline completions now autocompletes as much as possible on
TAB
, only showing the list of results when necessary.- Refs: [
1a9e247c79
], #7754
- Refs: [
- The following deprecated readline functions have been removed:
codePointAt()
,getStringWidth()
,isFullWidthCodePoint()
,stripVTControlCharacters()
.- These were previously undocumented, and then deprecated in v6.0.0.
- Refs: [
8a87b29034
], #6423
repl
[Docs]
- The internally unused function
REPL#convertToContext()
has been runtime-deprecated.- Refs: [
488d28d391
], #7829
- Refs: [
stream
[Docs]
- Error messages for unimplemented stream methods have been improved.
- Refs: [
2f05af4c06
], #8801, [9983af0347
], #7671
- Refs: [
Previously: not implemented
Now: _read() is not implemented
, _transform() is not implemented
, _write() is not implemented
TransformStream#_flush()
now accepts a seconddata
argument:_flush(err, data)
.- This now maintains consistency with other Transform Stream methods as hinted at in the docs.
- Refs: [
0cd0118334
], #3708
url
[Docs]
url.format()
now returns validfile://
urls.- Refs: [
336b027411
], #7234
- Refs: [
zlib
[Docs]
- zlib constants have been moved to
zlib.constants
.- The constants are still available directly off of the zlib object, but are now docs-deprecated.
- Refs: [
197a465280
], #7203
Native Modules (Addons)
- The Native Module version mismatch error has been updated to be far more clear.
- Refs: [
1fda657cac
], #8391
- Refs: [
Previously:
Module version mismatch. Expected 51, got 48.
Now:
The module '<module>'
was compiled against a different Node.js version using
NODE_MODULE_VERSION 48. This version of Node.js requires
NODE_MODULE_VERSION 51. Please try re-compiling or Re-installing
the module (for instance, using `npm rebuild` or `npm install`).
- The
NODE_MODULE_VERSION
is now51
.- Refs: [
96933df2ff
], #8808
- Refs: [
General Node
- Benchmarking has been completely overhauled.
- Anything previously relying on
/benchmarks/
will probably no longer work. - Refs: #7094
- Anything previously relying on
--
- libc++ is now always necessary for building on macOS.
- Refs: [
b032f1cfc3
], #8317
- Refs: [
--
- The Windows exit code for OS version mismatch is now the appropriate
ERROR_EXE_MACHINE_TYPE_MISMATCH
.- Refs: [
a3c5567eb4
], #8204
- Refs: [
Dependencies
- V8 has been upgraded to 5.4.500.36 + floating patches.
- Refs: deps/v8,
90efff6000
], #8317
- Refs: deps/v8,