Wednesday, September 13, 2023
HomeNodejsNode v12.17.0 (LTS) | Node.js

Node v12.17.0 (LTS) | Node.js


Notable Adjustments

ECMAScript Modules – --experimental-modules flag elimination

As of Node.js 12.17.0, the --experimental-modules flag is not essential
to make use of ECMAScript modules (ESM). Nonetheless, the ESM implementation in Node.js
stays experimental. As per our stability index: “The characteristic just isn’t topic
to Semantic Versioning guidelines. Non-backward appropriate adjustments or elimination might
happen in any future launch.” Customers needs to be cautious when utilizing the characteristic
in manufacturing environments.

In contrast to Node.js 14, utilizing ESM will nonetheless emit a runtime experimental warning,
both when a module is used a the appliance’s entrypoint or the primary time
dynamic import() is named.

Please understand that the implementation of ESM in Node.js differs from the
developer expertise you could be aware of. Most transpilation workflows
help options akin to named exports from CommonJS module imports, non-obligatory
file extensions or JSON modules that the Node.js ESM implementation doesn’t
help. It’s extremely doubtless that modules from transpiled environments will
require a sure diploma of refactoring to work in Node.js. It’s value
mentioning that a lot of our design choices have been made with two main targets.
Spec compliance and Internet Compatibility. It’s our perception that the present
implementation provides a future proof mannequin to authoring ESM modules that paves
the trail to Common JavaScript. Please learn extra in our documentation.

The ESM implementation in Node.js continues to be experimental however we do consider that
we’re getting very near having the ability to name ESM in Node.js “steady”.
Eradicating the flag is a big step in that route.

We anticipate to take away the warning Node.js 12 later this 12 months, probably in late
October, when Node.js 14 will grow to be LTS.

AsyncLocalStorage API (experimental)

The AsyncLocalStorage class has been launched within the Async Hooks module.

This API permits protecting a context throughout asynchronous operations. As an example,
if a sequence id is saved inside an occasion of AsyncLocalStorage for every
HTTP request getting into in a server, it is going to be doable to retrieve this id
with out having entry the present HTTP request:

const http = require('http');
const { AsyncLocalStorage } = require('async_hooks');

const asyncLocalStorage = new AsyncLocalStorage();

operate logWithId(msg) {
  const id = asyncLocalStorage.getStore();
  console.log(`${id !== undefined ? id : '-'}: `, msg);
}

let idSeq = 0;
http
  .createServer((req, res) => {
    asyncLocalStorage.run(idSeq++, () => {
      logWithId('begin');
      // Think about any chain of async operations right here.
      setImmediate(() => {
        logWithId('end');
        res.finish();
      });
    });
  })
  .pay attention(8080);

On this instance, the logWithId operate will all the time know what the present
request id is, even when there are a number of requests in parallel.

What can this API be used for

Use circumstances of this API embody:

  • Logging
  • Consumer identification
  • Efficiency monitoring
  • Error monitoring and dealing with
  • Way more!

Notice: This API continues to be experimental and a few strategies would possibly change in future releases of Node.js

Contributed by Vladimir de Turckheim – #26540.

REPL previews

If additional enter is predicable, a suggestion is inserted as preview.

The REPL now helps previews much like the Chrome DevTools console. An enter
suggestion is inserted as preview in case additional enter is predicable. The
suggestion could also be accepted by both urgent <TAB> or <RIGHT> on the finish of
the enter.
On prime of that, output is previewed when getting into variable names or operate
calls that don’t have any aspect impact.

image
image

Examine the preview in motion
and check out it out by yourself. Simply entry the REPL in your terminal by beginning
the Node.js executable with none additional command.

Contributed by Ruben Bridgewater – #30907, #30811.

The REPL helps bi-directional reverse-i-search much like
ZSH. It’s triggered with <ctrl> + R
to go looking backwards and <ctrl> + S to go looking forwards.

Entries are accepted as quickly as any button is pressed that does not correspond
with the reverse search. Cancelling is feasible by urgent escape or
<ctrl> + C.

Altering the route instantly searches for the following entry within the anticipated
route from the present place on.

image

Reverse-i-search in motion.

Contributed by Ruben Bridgewater – #31006.

It’s now doable to entry former historical past entries very quick by writing the
first characters of the previously entered code you’re on the lookout for. Then push
<UP> or <DOWN> to undergo the historical past entries that begin with these
characters.

It really works much like the Fish Shell substring-based
historical past search.

Contributed by Ruben Bridgewater – #31112.

Error monitoring

Monitoring error occasions

It’s now doable to observe 'error' occasions on an EventEmitter with out
consuming the emitted error by putting in a listener utilizing the image
EventEmitter.errorMonitor:

const myEmitter = new MyEmitter();

myEmitter.on(EventEmitter.errorMonitor, (err) => {
  MyMonitoringTool.log(err);
});

myEmitter.emit('error', new Error('whoops!'));
// Nonetheless throws and crashes Node.js

Contributed by Gerhard Stoebich – #30932.

Monitoring uncaught exceptions

It’s now doable to observe 'uncaughtException' occasions with out overriding
the default habits that exits the method by putting in an
'uncaughtExceptionMonitor' listener:

course of.on('uncaughtExceptionMonitor', (err, origin) => {
  MyMonitoringTool.logSync(err, origin);
});

// Deliberately trigger an exception, however don't catch it.
nonexistentFunc();
// Nonetheless crashes Node.js

Contributed by Gerhard Stoebich – #31257.

File system APIs

New operate: fs.readv

This new operate (together with its sync and promisified variations) takes an array
of ArrayBufferView parts and can write the information it reads sequentially to
the buffers.

Contributed by Sk Sajidul Kadir – #32356.

Optionally available parameters in fs.learn

A brand new overload is obtainable for fs.learn (together with its sync and promisified
variations), which permits to optionally move any of the offset, size and
place parameters.

Contributed by Lucas Holmquist – #31402.

Console groupIndentation choice

The Console constructor (require('console').Console) now helps completely different group indentations.

That is helpful in case you need completely different grouping width than 2 areas.

const { Console } = require('console');
const customConsole = new Console({
  stdout: course of.stdout,
  stderr: course of.stderr,
  groupIndentation: 10
});

customConsole.log('foo');
// 'foo'
customConsole.group();
customConsole.log('foo');
//           'foo'

Contributed by rickyes – #32964.

maxStringLength choice for util.examine()

It’s now doable to restrict the size of strings whereas inspecting objects.
That is doable by passing by means of the maxStringLength choice much like:

const { examine } = require('util');

const string = examine(['a'.repeat(1e8)], { maxStringLength: 10 });

console.log(string);
// "[ 'aaaaaaaaaa'... 99999990 more characters ]"

Contributed by rosaxny – #32392.

Secure N-API launch 6

The next N-API options at the moment are steady as a part of the N-API 6 launch:

Secure diagnostic experiences

The Diagnostic Report
characteristic is now steady and helps a brand new --report-compact flag to put in writing the
experiences in a compact, single-line JSON format, extra simply consumable by log
processing programs than the default multi-line format designed for human
consumption.

The default worth of server.headersTimeout for http and https servers was
elevated from 40000 to 60000 (60 seconds). This to accomodate for programs
like AWS ELB which have a timeout of 60 seconds.

Contributed by Tim Costa – #30071.

Different adjustments

  • cli:
    • Added a --trace-sigint CLI flag that may print the present execution
      stack on SIGINT (legendecas) #29207.
  • crypto:
    • Varied crypto APIs now help Diffie-Hellman secrets and techniques (Tobias Nießen) #31178.
  • dns:
    • Added the dns.ALL flag, that may be handed to dns.lookup() with dns.V4MAPPED
      to return resolved IPv6 addresses in addition to IPv4 mapped IPv6 addresses (murgatroid99) #32183.
  • module
    • Added a brand new experimental API to work together with Supply Map V3 knowledge (Benjamin Coe) #31132.
  • employee:
    • Added help for passing a transferList together with workerData to the
      Employee constructor (Juan José Arboleda) #32278.

Commits

Semver-minor commits

  • [a35e88caf5] – (SEMVER-MINOR) async_hooks: merge run and exit strategies (Andrey Pechkurov) #31950
  • [3eb34068a2] – (SEMVER-MINOR) async_hooks: forestall sync strategies of async storage exiting outer context (Stephen Belanger) #31950
  • [22db34caa7] – (SEMVER-MINOR) async_hooks: add sync enterWith to ALS (Stephen Belanger) #31945
  • [16e8b11708] – (SEMVER-MINOR) async_hooks: introduce async-context API (Vladimir de Turckheim) #26540
  • [f7adfcc1df] – (SEMVER-MINOR) async_hooks: add executionAsyncResource (Matteo Collina) #30959
  • [984ae304f2] – (SEMVER-MINOR) construct: make –without-report a no-op (Colin Ihrig) #32242
  • [e67b97ee53] – (SEMVER-MINOR) cli: enable –huge-max-old-generation-size in NODE_OPTIONS (Anna Henningsen) #32251
  • [154b18ffca] – (SEMVER-MINOR) console: help console constructor groupIndentation choice (rickyes) #32964
  • [40253cc1c8] – (SEMVER-MINOR) crypto: add crypto.diffieHellman (Tobias Nießen) #31178
  • [1977136a19] – (SEMVER-MINOR) crypto: add DH help to generateKeyPair (Tobias Nießen) #31178
  • [9f85585b13] – (SEMVER-MINOR) crypto: add key sort ‘dh’ (Tobias Nießen) #31178
  • [6ffe4ed3b5] – (SEMVER-MINOR) deps: improve to libuv 1.37.0 (Colin Ihrig) #32866
  • [2d7a7592ec] – (SEMVER-MINOR) deps: improve to libuv 1.36.0 (Colin Ihrig) #32866
  • [ae83f0f993] – (SEMVER-MINOR) deps: improve to libuv 1.35.0 (Colin Ihrig) #32204
  • [b7d264edaf] – (SEMVER-MINOR) dns: add dns.ALL hints flag fixed (murgatroid99) #32183
  • [fd2486ea44] – (SEMVER-MINOR) doc: replace stability of report options (Colin Ihrig) #32242
  • [90d35adccd] – (SEMVER-MINOR) doc,lib,src,take a look at: make –experimental-report a nop (Colin Ihrig) #32242
  • [93226a5097] – (SEMVER-MINOR) esm: unflag –experimental-modules (Man Bedford) #29866
  • [8c497f8969] – (SEMVER-MINOR) occasions: enable monitoring error occasions (Gerhard Stoebich) #30932
  • [a100709fa8] – (SEMVER-MINOR) fs: make parameters non-obligatory for readSync (Lucas Holmquist) #32460
  • [6601fac06a] – (SEMVER-MINOR) fs: add fs.readv() (Sk Sajidul Kadir) #32356
  • [16a913f702] – (SEMVER-MINOR) fs: make fs.learn params non-obligatory (Lucas Holmquist) #31402
  • [7260ede9e6] – (SEMVER-MINOR) fs: return first folder made by mkdir recursive (Benjamin Coe) #31530
  • [a15e712ef6] – (SEMVER-MINOR) fs: enable overriding fs for streams (Robert Nagy) #29083
  • [b5983213c1] – (SEMVER-MINOR) lib: add choice to disable __proto__ (Gus Caplan) #32279
  • [784fb8f08c] – (SEMVER-MINOR) module: add API for interacting with supply maps (Benjamin Coe) #31132
  • [e22d853c5d] – (SEMVER-MINOR) n-api: outline launch 6 (Gabriel Schulhof) #32058
  • [f56c4dd933] – (SEMVER-MINOR) n-api: add napi_get_all_property_names (himself65) #30006
  • [9eeee0d9f2] – (SEMVER-MINOR) perf_hooks: add property flags to GCPerformanceEntry (Kirill Fomichev) #29547
  • [5ec9295034] – (SEMVER-MINOR) course of: report ArrayBuffer reminiscence in memoryUsage() (Anna Henningsen) #31550
  • [de3603f0a6] – (SEMVER-MINOR) course of: enable monitoring uncaughtException (Gerhard Stoebich) #31257
  • [cf28afeeb6] – (SEMVER-MINOR) readline,repl: enhance historical past up/earlier (Ruben Bridgewater) #31112
  • [a0eb3e4ed2] – (SEMVER-MINOR) readline,repl: skip historical past entries similar to the present line (Ruben Bridgewater) #31112
  • [d7e153bddb] – (SEMVER-MINOR) readline,repl: add substring based mostly historical past search (Ruben Bridgewater) #31112
  • [936c85c309] – (SEMVER-MINOR) repl: implement reverse search (Ruben Bridgewater) #31006
  • [bf9ff16412] – (SEMVER-MINOR) repl: add completion preview (Ruben Bridgewater) #30907
  • [b14440fb5c] – (SEMVER-MINOR) repl: help previews by keen evaluating enter (Ruben Bridgewater) #30811
  • [0b310df532] – (SEMVER-MINOR) src: unconditionally embody report characteristic (Colin Ihrig) #32242
  • [394487e3e8] – (SEMVER-MINOR) src: create a getter for kernel model (Juan José Arboleda) #31732
  • [4ec25b4865] – (SEMVER-MINOR) src,cli: help compact (one-line) JSON experiences (Sam Roberts) #32254
  • [b038ad91f5] – (SEMVER-MINOR) src,lib: make ^C print a JS stack hint (legendecas) #29207
  • [6348fae690] – (SEMVER-MINOR) tls: expose SSL_export_keying_material (simon) #31814
  • [6aa3869688] – (SEMVER-MINOR) util: add maxStrLength choice to examine operate (unknown) #32392
  • [eda6665799] – (SEMVER-MINOR) vm: add code cache help for SourceTextModule (Gus Caplan) #31278
  • [5c81b8d814] – (SEMVER-MINOR) wasi: add returnOnExit choice (Colin Ihrig) #32101
  • [ca4e65273f] – (SEMVER-MINOR) employee: help MessagePort to staff knowledge (Juan José Arboleda) #32278
  • [217e3dfea6] – (SEMVER-MINOR) employee: enable URL in Employee constructor (Antoine du HAMEL) #31664
  • [ab8f38b551] – (SEMVER-MINOR) employee: add skill to take heap snapshot from guardian thread (Anna Henningsen) #31569

Semver-patch commits

  • [06d607d50f] – async_hooks: repair ctx loss after nested ALS calls (Andrey Pechkurov) #32085
  • [96d1f14005] – async_hooks: add retailer arg in AsyncLocalStorage (Andrey Pechkurov) #31930
  • [b4ca132254] – async_hooks: executionAsyncResource matches in hooks (Gerhard Stoebich) #31821
  • [02f99d289d] – buffer: add sort examine in bidirectionalIndexOf (Gerhard Stoebich) #32770
  • [b53193a33b] – buffer: mark pool ArrayBuffer as untransferable (Anna Henningsen) #32759
  • [b555a772cc] – construct: repair vcbuild error for lacking Visible Studio (Thomas) #32658
  • [6f1931de25] – construct: take away .git folders when testing V8 (Richard Lau) #32877
  • [c0805f0cab] – construct: add configure flag to construct V8 with DCHECKs (Anna Henningsen) #32787
  • [60660c35ee] – construct: use identical flags as V8 for ASAN (Matheus Marchini) #32776
  • [26fee8b323] – construct: take away .txt recordsdata from .gitignore (Wealthy Trott) #32710
  • [70eaba12a1] – construct: take away node_report choice in node.gyp (Colin Ihrig) #32242
  • [e765d597fd] – construct: add lacking comma in node.gyp (Colin Ihrig) #31959
  • [49ddd36f13] – construct: repair constructing with ninja (Richard Lau) #32071
  • [e097980cfe] – construct: warn upon –use-largepages config choice (Gabriel Schulhof) #31103
  • [c3efd2cb9a] – construct: swap realpath to pwd (Benjamin Coe) #31095
  • [0190a62f58] – construct: re-introduce –use-largepages as no-op (Gabriel Schulhof)
  • [e2a090b693] – construct: allow loading inside modules from disk (Gus Caplan) #31321
  • [c4da682437] – cli, report: transfer –report-on-fatalerror to steady (Colin Ihrig) #32496
  • [e05c29db3f] – cluster: repair error on employee disconnect/destroy (Santiago Gimeno) #32793
  • [d217b792bc] – cluster: eliminated unused addressType argument from constructor (Yash Ladha) #32963
  • [71bccdde76] – crypto: examine DiffieHellman p and g params (Ben Noordhuis) #32739
  • [c1b767471a] – crypto: generator should be int32 in DiffieHellman() (Ben Noordhuis) #32739
  • [4236175878] – crypto: key dimension should be int32 in DiffieHellman() (Ben Noordhuis) #32739
  • [0847bc3788] – crypto: simplify exportKeyingMaterial (Tobias Nießen) #31922
  • [907252d4cf] – crypto: enhance errors in DiffieHellmanGroup (Tobias Nießen) #31445
  • [30633acf20] – crypto: assign and use ERR_CRYPTO_UNKNOWN_CIPHER (Tobias Nießen) #31437
  • [5dab489d50] – crypto: simplify DH teams (Tobias Nießen) #31178
  • [5c0232a632] – deps: backport ICU-21081 for ICU 67.x (constexpr) (Steven R. Loomis) #33337
  • [2d76ae7497] – deps: replace to ICU 67.1 (Michaël Zasso) #33337
  • [e073da095e] – deps: replace to uvwasi 0.0.8 (Colin Ihrig) #33078
  • [eb33d523da] – deps: V8: backport 3f8dc4b2e5ba (Ujjwal Sharma) #32993
  • [56313daff6] – deps: V8: cherry-pick e1eac1b16c96 (Milad Farazmand) #32974
  • [65db9b210d] – deps: repair zlib compilation for CPUs with out SIMD options (Anna Henningsen) #32627
  • [1b53e179b8] – deps: replace zlib to upstream d7f3ca9 (Sam Roberts) #31800
  • [9a89718410] – deps: transfer zlib upkeep data to guides (Sam Roberts) #31800
  • [9e33f97c4e] – deps: swap to chromium’s zlib implementation (Brian White) #31201
  • [322a9986fe] – dgram: make UDPWrap extra reusable (Anna Henningsen) #31871
  • [ea4302bd46] – errors: drop pronouns from ERR_WORKER_PATH message (Colin Ihrig) #32285
  • [daf1d842cc] – esm: enhance commonjs trace on module not discovered (Daniele Belardi) #31906
  • [7410e8d63a] – esm: port loader code to JS (Anna Henningsen) #32201
  • [3241aee0f7] – occasions: convert errorMonitor to a standard property (Gerhard Stoebich) #31848
  • [2093f13333] – fs: replace validateOffsetLengthRead in utils.js (daemon1024) #32896
  • [9c18838e8e] – fs: take away pointless else assertion (Jesus Hernandez) #32662
  • [6d6bb2a3dc] – fs: use completed over destroy w/ cb (Robert Nagy) #32809
  • [bde08377a1] – fs: repair fs.learn when passing null worth (himself65) #32479
  • [ebd9090240] – http: disable headersTimeout examine when set to zero (Paolo Insogna) #33307
  • [a3decf5e59] – http: simplify sending header (Robert Nagy) #33200
  • [12b8345db8] – http, async_hooks: take away unneeded reference to wrapping useful resource (Gerhard Stoebich) #32054
  • [d60988161d] – http,https: enhance server headers timeout (Tim Costa) #30071
  • [d883024884] – http2: await secureConnect earlier than initializing (Benjamin Coe) #32958
  • [79e95e49f7] – inspector: solely write protection in totally bootstrapped Environments (Joyee Cheung) #32960
  • [9570644194] – lib: beauty change to builtinLibs checklist for maintainability (James M Snell) #33106
  • [6356ad42ab] – lib: repair validateport error message when allowZero is fake (rickyes) #32861
  • [698e21b346] – lib: add warning on dynamic import es modules (Juan José Arboleda) #30720
  • [4dba3fcafd] – lib: pointless const task for sophistication (Yash Ladha) #32962
  • [84571cec7e] – lib: take away unnecesary else block (David Daza) #32644
  • [5885b37bcc] – lib: created isValidCallback helper (Yash Ladha) #32665
  • [5b1c34651e] – lib: eliminated unused error code (Yash Ladha) #32481
  • [965452dbad] – lib: exchange Array to ArrayIsArray by primordials (himself65) #32258
  • [434ca8766a] – lib: transfer isLegalPort to validators, refactor (James M Snell) #31851
  • [65ebfb2f12] – lib: delete useless code in SourceMap (Justin Ridgewell) #31512
  • [b1f08b8359] – module: no sort module resolver unwanted effects (Man Bedford) #33086
  • [a1fa180079] – module: partial doc elimination of –experimental-modules (Myles Borins) #32915
  • [195043f910] – module: refactor situation (Myles Borins) #32989
  • [1811a10415] – module: exports not exported for null resolutions (Man Bedford) #32838
  • [3dc3772bb0] – module: enhance error for invalid bundle targets (Myles Borins) #32052
  • [6489a5b1d8] – module: repair reminiscence leak when require error happens (Qinhui Chen) #32837
  • [b62910c851] – module: expose exports situations to loaders (Jan Krems) #31303
  • [b62db597af] – module: port supply map kind logic from chromium (Benjamin Coe) #31927
  • [4d7f9869f3] – n-api: simplify uv_idle wrangling (Ben Noordhuis) #32997
  • [d08be9c8ca] – n-api: repair false assumption on napi_async_context constructions (legendecas) #32928
  • [fbd39436a0] – n-api: repair touch upon anticipated N-API model (Michael Dawson) #32236
  • [d50fe6c1ea] – path: repair remark grammar (thecodrr) #32942
  • [8dcb22f735] – perf_hooks: take away pointless task when title is undefined (rickyes) #32910
  • [f537377957] – course of: repair two overflow circumstances in SourceMap VLQ decoding (Justin Ridgewell) #31490
  • [7582bce58d] – readline: enhance unicode help and tab completion (Ruben Bridgewater) #31288
  • [5231c84396] – readline: transfer charLengthLeft() and charLengthAt() (Ruben Bridgewater) #31112
  • [03efa716f0] – readline: enhance getStringWidth() (Ruben Bridgewater) #31112
  • [e894eeb22d] – readline: set null as callback return in case there is not any error (Ruben Bridgewater) #31006
  • [3946cadf89] – readline: small refactoring (Ruben Bridgewater) #31006
  • [0bafe087e4] – readline: replace ansi-regex (Ruben Bridgewater) #30907
  • [4e9e4402c5] – readline,repl: help tabs correctly (Ruben Bridgewater) #31112
  • [3903aec0b4] – repl: align preview with the precise executed code (Ruben Bridgewater) #32154
  • [709d3e5eb3] – repl: eager-evaluate enter in parens (Shelley Vohr) #31943
  • [ce5c9d771c] – repl: don’t preview whereas pasting code (Ruben Bridgewater) #31315
  • [3867f2095e] – repl: repair preview cursor place (Ruben Bridgewater) #31293
  • [ee40b67413] – repl: change preview default in case of customized eval features (Ruben Bridgewater) #31259
  • [a4ca3787ea] – repl: activate previews for traces exceeding the terminal columns (Ruben Bridgewater) #31112
  • [a892b4d00c] – repl: enhance preview size calculation (Ruben Bridgewater) #31112
  • [9abe0e32d8] – repl: use public getCursorPos() (Colin Ihrig) #31091
  • [85f8654415] – repl: repair preview of traces that exceed the terminal columns (Ruben Bridgewater) #31006
  • [47dfa22adb] – repl: repair preview bug in case of lengthy traces (Ruben Bridgewater) #30907
  • [7131de5f77] – repl: enhance completion (Ruben Bridgewater) #30907
  • [61886507ce] – repl: simplify code (Ruben Bridgewater) #30907
  • [9b893e1bee] – repl: simplify repl autocompletion (Ruben Bridgewater) #30907
  • [78dcdee35f] – repl: take away useless code (Ruben Bridgewater) #30907
  • [f588301f2d] – repl,readline: clear up code (Ruben Bridgewater) #31288
  • [8be00314a6] – repl,readline: refactor for simplicity (Ruben Bridgewater) #30907
  • [6eda28c69f] – repl,readline: refactor frequent code (Ruben Bridgewater) #30907
  • [f945a5e3e1] – report: repair stderr matching for deadly error (gengjiawen) #32699
  • [4b96fc522c] – report: add lacking locks for report_on_fatalerror accessors (Anna Henningsen) #32535
  • [c126d28c2e] – report: deal with on-fatalerror higher (Harshitha KP) #32207
  • [85ef383bc5] – src: take away unused v8 Message namespace (Adrian Estrada) #33180
  • [ffca498ca2] – src: use unique_ptr for CachedData in ContextifyScript::New (Anna Henningsen) #33113
  • [b3f0417830] – src: return undefined when validation err == 0 (James M Snell) #33107
  • [1436977984] – src: crypto::UseSNIContext to make use of BaseObjectPtr (James M Snell) #33107
  • [6b1e2359c2] – src: separate out NgLibMemoryManagerBase (James M Snell) #33104
  • [8864353c6e] – src: take away pointless totally certified names (rickyes) #33077
  • [62f29534de] – src: add AsyncWrapObject constructor template manufacturing unit (Stephen Belanger) #33051
  • [08b66f223d] – src: don’t examine towards large characters (Christopher Beeson) #32921
  • [60db9afde5] – src: repair empty-named env var assertion failure (Christopher Beeson) #32921
  • [b893c5b7ba] – src: task to legitimate sort (Yash Ladha) #32879
  • [846d7bdbbf] – src: delete MicroTaskPolicy namespace (Juan José Arboleda) #32853
  • [05059a2469] – src: use utilizing NewStringType (rickyes) #32843
  • [cf16cb7ed5] – src: repair null deref in AllocatedBuffer::clear (Matt Kulukundis) #32892
  • [0745f8884c] – src: take away validation of unreachable code (Juan José Arboleda) #32818
  • [9c216640d7] – src: elevate v8 namespaces (Nimit) #32872
  • [71bdcaeac7] – src: take away redundant v8::HeapSnapshot namespace (Juan José Arboleda) #32854
  • [bb1481fd23] – src: take away unused utilizing in node_worker.cc (Daniel Bevenius) #32840
  • [8a38726826] – src: ignore GCC -Wcast-function-type for v8.h (Daniel Bevenius) #32679
  • [c26637b7da] – src: take away unused v8 Array namespace (Juan José Arboleda) #32749
  • [c0d3fc28ec] – src: sync entry for report and openssl choices (Sam Roberts) #32618
  • [9a010a3ea5] – src: munmap(2) upon class occasion destructor (Gabriel Schulhof) #32570
  • [06953df051] – src: repair further consists of of “env.h” and “env-inl.h” (Nick Kreeger) #32293
  • [7432d0a170] – src: keep away from utilizing elevated v8 namespaces in node_perf.h (James M Snell) #32468
  • [6175a22b87] – src: keep away from utilizing elevated v8 namespaces in node_errors.h (James M Snell) #32468
  • [464ff85ddd] – src: take away loop_init_failed_ from Employee class (Anna Henningsen) #32562
  • [9f6ed724e0] – src: clear up employee thread creation code (Anna Henningsen) #32562
  • [73c55d39f3] – src: embody AsyncWrap supplier strings in snapshot (Anna Henningsen) #32572
  • [29eca36ea8] – src: transfer JSONWriter into its personal file (Anna Henningsen) #32552
  • [8e3dd47db7] – src: deal with report choices on fatalerror (Sam Roberts) #32497
  • [e0351945bc] – src: refactoring and cleanup of node_i18n (James M Snell) #32438
  • [23f8f35022] – src: unify Linux and FreeBSD giant pages implem (Gabriel Schulhof) #32534
  • [16d85d9328] – src: repair compiler warnings in node_report_module (Daniel Bevenius) #32498
  • [58aadcdacf] – src: simplify giant pages mapping code (Gabriel Schulhof) #32396
  • [2da974e15e] – src: use single ObjectTemplate for TextDecoder (Anna Henningsen) #32426
  • [8f7f4e5aba] – src: keep away from Isolate::GetCurrent() for platform implementation (Anna Henningsen) #32269
  • [df046dec97] – src: add debug choice to report giant web page stats (Gabriel Schulhof) #32331
  • [43e9ae8317] – src: desire OnScopeLeave over shared_ptr<void> (Anna Henningsen) #32247
  • [2f976d783f] – src: discover .textual content part utilizing dl_iterate_phdr (Gabriel Schulhof) #32244
  • [40c5d58095] – Revertsrc: hold main-thread Isolate hooked up to platform throughout Dispose” (Anna Henningsen) #31853
  • [51a345674e] – src: deal with NULL env state of affairs (Harshitha KP) #31899
  • [154da1f0d3] – src: add lacking namespace utilizing statements in node_watchdog.h (legendecas) #32117
  • [83c47b6079] – src: introduce node_sockaddr (James M Snell) #32070
  • [c979aeaf26] – src: enhance dealing with of inside discipline counting (James M Snell) #31960
  • [38de40ac50] – src: don’t unnecessarily re-assign uv deal with knowledge (Anna Henningsen) #31696
  • [e204dba3f3] – src: move useful resource object together with InternalMakeCallback (Anna Henningsen) #32063
  • [ffefb059e2] – src: transfer InternalCallbackScope to StartExecution (Shelley Vohr) #31944
  • [178c682ad1] – src: begin the .textual content part with an asm image (Gabriel Schulhof) #31981
  • [809d8b5036] – src: embody giant pages supply unconditionally (Gabriel Schulhof) #31904
  • [5ea3d60db1] – src: use __executable_start for linux hugepages (Ben Noordhuis) #31547
  • [1e95bb85a9] – src: make large_pages node.cc embody conditional (Denys Otrishko) #31078
  • [6dcb868a0a] – src: make –use-largepages a runtime choice (Gabriel Schulhof) #30954
  • [f3fb6a11fe] – src: change GetStringWidth’s expand_emoji_sequence choice default (Ruben Bridgewater) #31112
  • [4f6300f804] – src: enhance GetColumnWidth efficiency (Ruben Bridgewater) #31112
  • [98297b92f5] – src: inline SetSNICallback (Anna Henningsen) #30548
  • [ce8d8c06ac] – src: use BaseObjectPtr to retailer SNI context (Anna Henningsen) #30548
  • [c86883e4fe] – stream: add null examine in Readable.from (Pranshu Srivastava) #32873
  • [5df8ab16f2] – stream: shut iterator in Readable.from (Vadzim Zieńka) #32844
  • [c8b4ab0978] – stream: repair readable state awaitDrain enhance in recursion (ran) #27572
  • [becbe9e246] – tls: transfer getAllowUnauthorized to inside/choices (James M Snell) #32917
  • [dec8a21cc8] – tls: present default cipher checklist from command line (Anna Henningsen) #32760
  • [8961d33aff] – tls: add reminiscence monitoring help to SSLWrap (Anna Henningsen) #30548
  • [1b41829828] – util: enhance unicode help (Ruben Bridgewater) #31319
  • [a0b1a06fff] – util: add todo feedback for examine so as to add unicode help (Ruben Bridgewater) #31112
  • [e0e8a9af6f] – util,readline: NFC-normalize strings earlier than getStringWidth (Anna Henningsen) #33052
  • [6a9f867e56] – vm: throw error when duplicated exportNames in SyntheticModule (himself65) #32810
  • [02de66a110] – vm: lazily initialize primordials for vm contexts (Joyee Cheung) #31738
  • [843a54fd33] – wasi: use free() to launch preopen array (Anna Henningsen) #33110
  • [7f845e614b] – wasi: replace begin() habits to match spec (Colin Ihrig) #33073
  • [e1fe0b66b5] – wasi: rename __wasi_unstable_reactor_start() (Colin Ihrig) #33073
  • [7c723af3ae] – wasi: clear up choices validation (Denys Otrishko) #31797
  • [9ce6e363f4] – employee: repair course of.env var empty key entry (Christopher Beeson) #32921
  • [57cd7d2faa] – employee: repair sort examine in receiveMessageOnPort (Anna Henningsen) #32745
  • [ade4ec6f9a] – employee: runtime error on pthread creation (Harshitha KP) #32344

Documentation commits

Different commits

  • [cdf4f4875d] – benchmark: use let as a substitute of var in employee (Daniele Belardi) #31794
  • [c572218552] – benchmark: use let as a substitute of var in util (Daniele Belardi) #31794
  • [862aeae238] – benchmark: use let as a substitute of var in url (Daniele Belardi) #31794
  • [e68c21f079] – benchmark: use let as a substitute of var in tls (Daniele Belardi) #31794
  • [f3ef8946d0] – benchmark: use let as a substitute of var in timers (Daniele Belardi) #31794
  • [33858fa917] – benchmark: use let as a substitute of var in run.js (Daniele Belardi) #31794
  • [a05f22647a] – benchmark: use let as a substitute of var in dns (Daniele Belardi) #31794
  • [2d7c52d729] – benchmark: use let as a substitute of var in frequent.js (Daniele Belardi) #31794
  • [d205bc91d4] – benchmark: use const as a substitute of var in async_hooks (Daniele Belardi) #31794
  • [d7f1add038] – benchmark: add no-var rule in .eslintrc.yaml (Daniele Belardi) #31794
  • [b4a6351634] – benchmark: take away particular take a look at entries (Ruben Bridgewater) #31755
  • [71397885b2] – benchmark: add take a look at and all choices and enhance errors” (Ruben Bridgewater) #31755
  • [011e3dec00] – benchmark: refactor helper into a category (Ruben Bridgewater) #31755
  • [cf2ca11828] – Revertbenchmark: refactor helper into a category” (Anna Henningsen) #31722
  • [ef80c02794] – Revertbenchmark: take away particular take a look at entries” (Anna Henningsen) #31722
  • [3861c69b02] – benchmark: repair error on server shut in AsyncLocalStorage benchmark (Andrey Pechkurov) #32503
  • [daf6e1702f] – benchmark: use let as a substitute of var in zlib (Daniele Belardi) #31794
  • [6b02359dbf] – take a look at: replace c8 ignore remark (Benjamin Coe) #33151
  • [d7b13abbf8] – take a look at: skip reminiscence utilization checks when ASAN is enabled (Anna Henningsen) #33129
  • [238353839c] – take a look at: transfer test-process-title to sequential (Anna Henningsen) #33150
  • [13cae34484] – take a look at: repair out-of-bound reads from invalid sizeof utilization (Anna Henningsen) #33115
  • [08e01a12d0] – take a look at: add lacking calls to napi_async_destroy (Anna Henningsen) #33114
  • [3015887019] – take a look at: examine args on SourceTextModule cachedData (Juan José Arboleda) #32956
  • [dad82173cd] – take a look at: mark take a look at flaky on freebsd (Sam Roberts) #32849
  • [4ab6643abb] – take a look at: flaky test-stdout-close-catch on freebsd (Sam Roberts) #32849
  • [60550f35ac] – take a look at: refactor test-async-hooks-constructor (himself65) #33063
  • [83520451cc] – take a look at: take away timers-blocking-callback (Jeremiah Senkpiel) #32870
  • [579f68c5fd] – take a look at: higher error validations for event-capture (Adrian Estrada) #32771
  • [dacd27927a] – take a look at: refactor occasions checks for invalid listeners (Adrian Estrada) #32769
  • [4c67568148] – take a look at: test-async-wrap-constructor desire forEach (Daniel Estiven Rico Posada) #32631
  • [0bae243438] – take a look at: mark test-child-process-fork-args as flaky on Home windows (Andrey Pechkurov) #32950
  • [f181b5996a] – take a look at: modified operate to arrow operate (Nimit) #32875
  • [68e3954d1a] – take a look at: exchange console.log/error() with debuglog (daemon1024) #32692
  • [c566906789] – take a look at: solely detect uname on supported os (Xu Meng) #32833
  • [50130f0e23] – take a look at: mark cpu-prof-dir-worker flaky on all (Sam Roberts) #32828
  • [96c93113a8] – take a look at: exchange equal with strictEqual (Jesus Hernandez) #32727
  • [e839a71ca8] – take a look at: mark test-worker-prof flaky on arm (Sam Roberts) #32826
  • [44ca47904d] – take a look at: mark test-http2-reset-flood flaky on all (Sam Roberts) #32825
  • [271b309c91] – take a look at: cowl node entry sort in perf_hooks (Julian Duque) #32751
  • [769ac24eba] – take a look at: use symlinks to repeat shells (John Kleinschmidt) #32129
  • [b3ac840b97] – take a look at: save take a look at file in short-term listing (Luigi Pinca) #32670
  • [c5e0615942] – take a look at: refactor test-worker (himself65) #32509
  • [8eb6807dfe] – take a look at: exchange flag expose_internals to expose-internals (Juan José Arboleda) #32542
  • [5598dd14df] – take a look at: repair a typo on test-fs-read-optional-params (himself65) #32461
  • [30207985cc] – take a look at: als variant of test-timers-clearImmediate (Harshitha KP) #32303
  • [e3baee6c3d] – take a look at: refactoring / cleanup on child-process checks (James M Snell) #32078
  • [6a0bc83370] – take a look at: take away frequent.skipIfReportDisabled() (Colin Ihrig) #32242
  • [4a08b85fc8] – take a look at: make test-memory-usage predictable (Matheus Marchini) #32239
  • [efc844d00d] – take a look at: confirm that WASI errors are rethrown (Colin Ihrig) #32157
  • [10ee89a8d5] – take a look at: refactor and simplify test-repl-preview (Ruben Bridgewater) #32154
  • [5a8e54b6de] – take a look at: refactor all benchmark checks to make use of the brand new take a look at choice (Ruben Bridgewater) #31755
  • [d1d22fa86e] – take a look at: add secp224k1 examine in crypto-dh-stateless (Daniel Bevenius) #31715
  • [8a044cb9ae] – take a look at: repair flaky parallel/test-repl-history-navigation take a look at (Ruben Bridgewater) #31708
  • [2fc72cac97] – take a look at: repair flaky test-trace-sigint-on-idle (Anna Henningsen) #31645
  • [a4ee930d71] – take a look at: enhance logged errors (Ruben Bridgewater) #31425
  • [4aaf4075e9] – take a look at: present little one stderr output in largepages take a look at (Ben Noordhuis) #31612
  • [2508e1321f] – take a look at: add new state of affairs for async-local storage (Harshitha KP) #32082
  • [52a11544cf] – take a look at: add GC take a look at for disabled AsyncLocalStorage (Andrey Pechkurov) #31995
  • [98ece74dc7] – take a look at: enhance disable AsyncLocalStorage take a look at (Andrey Pechkurov) #31998
  • [e5a64e5def] – take a look at: repair flaky test-memory-usage (Anna Henningsen) #31602
  • [02ec03ce27] – take a look at: cowl property n-api null circumstances (Gabriel Schulhof) #31488
  • [733002b081] – take a look at: skip keygen checks on arm programs (Tobias Nießen) #31178
  • [5e5d053585] – take a look at: add repl checks to confirm unicode help in previews (Ruben Bridgewater) #31112
  • [f1624bbafa] – take a look at: add a number of repl preview checks (Ruben Bridgewater) #30907
  • [9dcf137623] – take a look at,benchmark: repair test-benchmark-zlib (Wealthy Trott) #31538
  • [94e4847142] – instruments: bump remark-preset-lint-node to 1.15.0 (Wealthy Trott) #33157
  • [58bd92aa26] – instruments: replace [email protected] (Wealthy Trott) #33072
  • [b9d9c24cfc] – instruments: replace damaged sorts in sort parser (Colin Ihrig) #33068
  • [3dafc1460d] – instruments: repair mkcodecache when run with ASAN (Anna Henningsen) #32850
  • [1c010b41a1] – instruments: replace ESLint to 7.0.0-rc.0 (himself65) #33062
  • [5f79ab2239] – instruments: take away unused code in doc technology instrument (Wealthy Trott) #32913
  • [576a62688f] – instruments: lower timeout in take a look at.py (Anna Henningsen) #32868
  • [9cf9cb436b] – instruments: take away prefer-common-expectserror lint rule (Colin Ihrig) #31147

Home windows 32-bit Installer: https://nodejs.org/dist/v12.17.0/node-v12.17.0-x86.msi
Home windows 64-bit Installer: https://nodejs.org/dist/v12.17.0/node-v12.17.0-x64.msi
Home windows 32-bit Binary: https://nodejs.org/dist/v12.17.0/win-x86/node.exe
Home windows 64-bit Binary: https://nodejs.org/dist/v12.17.0/win-x64/node.exe
macOS 64-bit Installer: https://nodejs.org/dist/v12.17.0/node-v12.17.0.pkg
macOS 64-bit Binary: https://nodejs.org/dist/v12.17.0/node-v12.17.0-darwin-x64.tar.gz
Linux 64-bit Binary: https://nodejs.org/dist/v12.17.0/node-v12.17.0-linux-x64.tar.xz
Linux PPC LE 64-bit Binary: https://nodejs.org/dist/v12.17.0/node-v12.17.0-linux-ppc64le.tar.xz
Linux s390x 64-bit Binary: https://nodejs.org/dist/v12.17.0/node-v12.17.0-linux-s390x.tar.xz
AIX 64-bit Binary: https://nodejs.org/dist/v12.17.0/node-v12.17.0-aix-ppc64.tar.gz
SmartOS 64-bit Binary: https://nodejs.org/dist/v12.17.0/node-v12.17.0-sunos-x64.tar.xz
ARMv7 32-bit Binary: https://nodejs.org/dist/v12.17.0/node-v12.17.0-linux-armv7l.tar.xz
ARMv8 64-bit Binary: https://nodejs.org/dist/v12.17.0/node-v12.17.0-linux-arm64.tar.xz
Supply Code: https://nodejs.org/dist/v12.17.0/node-v12.17.0.tar.gz
Different launch recordsdata: https://nodejs.org/dist/v12.17.0/
Documentation: https://nodejs.org/docs/v12.17.0/api/

SHASUMS

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

a775eb37dd9bd020b5d96673390e2aa43e59953f50fda59acf1f56f3dde01716  node-v12.17.0-aix-ppc64.tar.gz
8c3b9459462b8adaa10549f4da6a5ff5cdfaf7140a8a8020a87cc96d79022cc0  node-v12.17.0-darwin-x64.tar.gz
bcd4c49389a6cbd2320d5bac3802273fcfc512ede88e659fbdec98d61ed26054  node-v12.17.0-darwin-x64.tar.xz
26e0563d944672ca8c5e7e2afdff8cc85250943f0ac6dd4691006bf71e232f15  node-v12.17.0-headers.tar.gz
6d45d920d3736459d78c42d9387344b6ca052fda84d91a764adc61353f0ae9b6  node-v12.17.0-headers.tar.xz
498eda4d6089544ec7be795fd43cb5e9ff5e7f25fc10f0ce81646990ff3163b7  node-v12.17.0-linux-arm64.tar.gz
54a0dbb203ff1700341d258cefa304bd31044bf0226e9e59a0de1128418cb5aa  node-v12.17.0-linux-arm64.tar.xz
983aa90deb81381d22189698189018813f3ae261c26bc4ddbca89d9073220f4b  node-v12.17.0-linux-armv7l.tar.gz
2c3ffb284ab4e3654481e2fcb11efdda01070c47f76f03dad93611e9c1968e38  node-v12.17.0-linux-armv7l.tar.xz
1b442db6f807c593c95986fe17775d1ffd4d073c213d2d9b9be71f09f70076b6  node-v12.17.0-linux-ppc64le.tar.gz
558492787d9aba23fa4f88acfff8ad63e3d55043a08175db5c350c7e5224ec1b  node-v12.17.0-linux-ppc64le.tar.xz
74125f1f38efd246d5cf780f79273cb2a943bd9e3e14e2e1058e30fa7206e307  node-v12.17.0-linux-s390x.tar.gz
ad1351b6e1278218f107b56a4fbd28c745a70bb470ee1c681d08d05b750cda3e  node-v12.17.0-linux-s390x.tar.xz
582b66031fafdb77b0c897eaac522d55721df49555fe45de7bc207af443c4f73  node-v12.17.0-linux-x64.tar.gz
988653492a4f422fb112421c5c9d1c140146b665b480c2b24c66fffdd0b88a88  node-v12.17.0-linux-x64.tar.xz
66140cc7b78e9e171d6f15f979516c55750039749d473d7b258cafa1a1fe571c  node-v12.17.0.pkg
ae828b1b1970eccc062b8c9997bab9a0124c945a34ca6ccc61c8ae25d8484f6a  node-v12.17.0-sunos-x64.tar.gz
f7441afd3aedb9537f557c8c17ad8ad91d5384c647bf8848ebdf9bb1448b313c  node-v12.17.0-sunos-x64.tar.xz
6198f2db36b2c76933d96919dd11e283620c3af2c2b39c2795301bc9c9ee73db  node-v12.17.0.tar.gz
ca6d9e86a7fffc95f0ac6424ae242ed03026ed1f15a96ed5ac5ae3603f6f4e33  node-v12.17.0.tar.xz
1749c9dcfceb29ad0c6ffa447f86d96efec8f97823b3b5e17940de9043113ca3  node-v12.17.0-win-x64.7z
f3a64dc6ad48577f1f81521aa144c028beb7e353d0fcd05d7b420a72a84f50fc  node-v12.17.0-win-x64.zip
d79026437e764fa090b562ca504dd6596601105b14fc564d54da4e23a1f52c06  node-v12.17.0-win-x86.7z
9ae66ef3abb38c54679d8a5d971870353a80f466a24404b5d8b880e049f5fb8c  node-v12.17.0-win-x86.zip
fcf7abaafd5dede76104527d064f88ec1f2d2131dc9a0f5387fe2c0abbd1ba94  node-v12.17.0-x64.msi
9bcf24b14c84799ee48b9a9e6bb83058e434fbb1a61d9fb59918a0c296164d26  node-v12.17.0-x86.msi
0a4e6c7abdadfeaad7391402dc7422fb3d8cfc19f4092c8ea0510e2a5b34ccfb  win-x64/node.exe
29a84d0c0dc7cc97cb3fe6aaad31cfba88ba33b662bd73187d442a7a5b86406b  win-x64/node.lib
1b9eafae94f66a4e6a7b3924990cbd0a3d757027836275a955e268bfec3b6a68  win-x64/node_pdb.7z
bdd8d911115c0cdf9669fa6d1410c4bef7489128c5c2e2a92ba5af0b4ae4db11  win-x64/node_pdb.zip
14a9f90e98b9a06d7b28f58177561b80105b476fc2884be4c9c09bac0254f75c  win-x86/node.exe
eefe19a12b21ddfece8e1c59ad7ba33b8255b66e7a23d93ddadb6a87f0f58275  win-x86/node.lib
947913d99689b970f5bc2a655feed9c391cbdf4210a156ebe2ad9893ce28ddc5  win-x86/node_pdb.7z
6869f591537ebb2bf6077ece0407eb684557a51d65f053f65ebd5d1939b08d90  win-x86/node_pdb.zip
-----BEGIN PGP SIGNATURE-----

iQIzBAEBCAAdFiEEj8yhP+8dDC6RAI4Jdw96mlrhVgAFAl7NIY0ACgkQdw96mlrh
VgBN+w/+LQFcjNXDBdm+D58IENmtB0gzFbpuuEhECIVnQv4i9m1DifNEWYQ7FQhl
459yYE+4m/b8OfItrU+Yh9hxSX/7hgLVyrkuVjjjNx5f0fuUwNVuUuWyFnkiAfNz
HWnDJ1b8Mw5uUu9q4c65RPGyBY89B1Ttu/RpFdAmlqIVIur98SoWfZucm9VBDoaJ
DT30Z+1OIFt2D//SDF+SXTEkodILcvup5G+0v31HulF2bGKD5yJw9sxLvuhvnTMK
rXl5Dg0onGxvSqtidBDU9UIpatnUkEXAMSWZ0iHob8K+hnT/3bfmB+RdEosI3G4G
QBF65WgijBAAf53R3A2OwNKHz2UtpXmSFDaGmtKxKodhLrTkYTiOWp4wzi4YXkEM
ExYWWIvaxsp+LIYIWqAxBT5SGWe5GIcVQdd14lxyJ5vCFjyGjO1/WqJtG+P/TR2k
elszntQx6yw8hXY/q2Ni/teexH5SwC/gPysLq6a2CWbxV4Qt7Tx4myjM/zPSJmFk
o26X0XVNoA6aoS3AreUA5ESD7BVBN8BP+Ja/hyjwnxYgBs9QkUUclJILLi3U37Kl
fPWpYTFBLacUofvAMrx5fKbaOYiQkFPXhRa3b/Af0mXAq4CctqX2imgEq8FVtry8
dL/3CzosXs26FPnt4iQ39cAHNUWpFGRJLQecqvdoYgErylJHXyI=
=NDuc
-----END PGP SIGNATURE-----

RELATED ARTICLES

Most Popular

Recent Comments