Skip to content

Commit db0b9b6

Browse files
committed
2022-08-16, Version 18.8.0 (Current)
Notable changes: bootstrap: implement run-time user-land snapshots via --build-snapshot and --snapshot-blob This patch introduces `--build-snapshot` and `--snapshot-blob` options for creating and using user land snapshots. To generate a snapshot using snapshot.js as an entry point and write the snapshot blob to snapshot.blob: ```bash echo "globalThis.foo = 'I am from the snapshot'" > snapshot.js node --snapshot-blob snapshot.blob --build-snapshot snapshot.js ``` To restore application state from snapshot.blob, with index.js as the entry point script for the deserialized application: ```bash echo "console.log(globalThis.foo)" > index.js node --snapshot-blob snapshot.blob index.js ``` Users can also use the `v8.startupSnapshot` API to specify an entry point at snapshot building time, thus avoiding the need of an additional entry script at deserialization time: ```bash echo "require('v8').startupSnapshot.setDeserializeMainFunction(() => console.log('I am from the snapshot'))" > snapshot.js node --snapshot-blob snapshot.blob --build-snapshot snapshot.js node --snapshot-blob snapshot.blob ``` Contributed by Joyee Cheung in #38905 Other notable changes: * crypto: * (SEMVER-MINOR) allow zero-length IKM in HKDF and in webcrypto PBKDF2 (Filip Skokan) #44201 * (SEMVER-MINOR) allow zero-length secret KeyObject (Filip Skokan) #44201 * doc: * add MoLow to collaborators (Moshe Atlow) #44214 * add ErickWendel to collaborators (Erick Wendel) #44088 * http: * (SEMVER-MINOR) make idle http parser count configurable (theanarkh) #43974 * net: * (SEMVER-MINOR) add local family (theanarkh) #43975 * src: * (SEMVER-MINOR) add detailed embedder process initialization API (Anna Henningsen) #44121 * (SEMVER-MINOR) print source map error source on demand (Chengzhong Wu) #43875 * tls: * (SEMVER-MINOR) pass a valid socket on `tlsClientError` (Daeyeon Jeong) #44021 * worker: * deprecate `--trace-atomics-wait` (Keyhan Vakil) #44093
1 parent 96c3373 commit db0b9b6

10 files changed

+235
-27
lines changed

CHANGELOG.md

+2-1
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,8 @@ release.
3535
</tr>
3636
<tr>
3737
<td valign="top">
38-
<b><a href="doc/changelogs/CHANGELOG_V18.md#18.7.0">18.7.0</a></b><br/>
38+
<b><a href="doc/changelogs/CHANGELOG_V18.md#18.8.0">18.8.0</a></b><br/>
39+
<a href="doc/changelogs/CHANGELOG_V18.md#18.7.0">18.7.0</a><br/>
3940
<a href="doc/changelogs/CHANGELOG_V18.md#18.6.0">18.6.0</a><br/>
4041
<a href="doc/changelogs/CHANGELOG_V18.md#18.5.0">18.5.0</a><br/>
4142
<a href="doc/changelogs/CHANGELOG_V18.md#18.4.0">18.4.0</a><br/>

doc/api/assert.md

+3-3
Original file line numberDiff line numberDiff line change
@@ -325,7 +325,7 @@ const callsfunc = tracker.calls(func);
325325
### `tracker.getCalls(fn)`
326326

327327
<!-- YAML
328-
added: REPLACEME
328+
added: v18.8.0
329329
-->
330330

331331
* `fn` {Function}.
@@ -439,7 +439,7 @@ tracker.report();
439439
### `tracker.reset([fn])`
440440

441441
<!-- YAML
442-
added: REPLACEME
442+
added: v18.8.0
443443
-->
444444

445445
* `fn` {Function} a tracked function to reset.
@@ -2092,7 +2092,7 @@ argument gets considered.
20922092
## `assert.snapshot(value, name)`
20932093

20942094
<!-- YAML
2095-
added: REPLACEME
2095+
added: v18.8.0
20962096
-->
20972097

20982098
> Stability: 1 - Experimental

doc/api/cli.md

+4-4
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,7 @@ If this flag is passed, the behavior can still be set to not abort through
103103
### `--build-snapshot`
104104

105105
<!-- YAML
106-
added: REPLACEME
106+
added: v18.8.0
107107
-->
108108

109109
> Stability: 1 - Experimental
@@ -1158,7 +1158,7 @@ The value given must be a power of two.
11581158
### `--snapshot-blob=path`
11591159

11601160
<!-- YAML
1161-
added: REPLACEME
1161+
added: v18.8.0
11621162
-->
11631163

11641164
> Stability: 1 - Experimental
@@ -1303,7 +1303,7 @@ for TLSv1.2, which is not as secure as TLSv1.3.
13031303

13041304
<!-- YAML
13051305
added: v14.3.0
1306-
deprecated: REPLACEME
1306+
deprecated: v18.8.0
13071307
-->
13081308

13091309
> Stability: 0 - Deprecated
@@ -1464,7 +1464,7 @@ loading phase, it will always raise it as an uncaught exception.
14641464
### `--update-assert-snapshot`
14651465

14661466
<!-- YAML
1467-
added: REPLACEME
1467+
added: v18.8.0
14681468
-->
14691469

14701470
Force updating snapshot files for [`assert.snapshot()`][]

doc/api/crypto.md

+3-3
Original file line numberDiff line numberDiff line change
@@ -3533,7 +3533,7 @@ and it will be impossible to extract the private key from the returned object.
35333533
<!-- YAML
35343534
added: v11.6.0
35353535
changes:
3536-
- version: REPLACEME
3536+
- version: v18.8.0
35373537
pr-url: https://github.com/nodejs/node/pull/44201
35383538
description: The key can now be zero-length.
35393539
- version: v15.0.0
@@ -4203,7 +4203,7 @@ web-compatible code use [`crypto.webcrypto.getRandomValues()`][] instead.
42034203
<!-- YAML
42044204
added: v15.0.0
42054205
changes:
4206-
- version: REPLACEME
4206+
- version: v18.8.0
42074207
pr-url: https://github.com/nodejs/node/pull/44201
42084208
description: The input keying material can now be zero-length.
42094209
- version: v18.0.0
@@ -4266,7 +4266,7 @@ hkdf('sha512', 'key', 'salt', 'info', 64, (err, derivedKey) => {
42664266
<!-- YAML
42674267
added: v15.0.0
42684268
changes:
4269-
- version: REPLACEME
4269+
- version: v18.8.0
42704270
pr-url: https://github.com/nodejs/node/pull/44201
42714271
description: The input keying material can now be zero-length.
42724272
-->

doc/api/deprecations.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -3173,7 +3173,7 @@ strings (e.g., '1') are deprecated as parameter in [`process.exit()`][].
31733173

31743174
<!-- YAML
31753175
changes:
3176-
- version: REPLACEME
3176+
- version: v18.8.0
31773177
pr-url: https://github.com/nodejs/node/pull/44093
31783178
description: Documentation-only deprecation.
31793179
-->

doc/api/http.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -3618,7 +3618,7 @@ try {
36183618
## `http.setMaxIdleHTTPParsers`
36193619

36203620
<!-- YAML
3621-
added: REPLACEME
3621+
added: v18.8.0
36223622
-->
36233623

36243624
* {number}

doc/api/net.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -1049,7 +1049,7 @@ The numeric representation of the local port. For example, `80` or `21`.
10491049
### `socket.localFamily`
10501050

10511051
<!-- YAML
1052-
added: REPLACEME
1052+
added: v18.8.0
10531053
-->
10541054

10551055
* {string}

doc/api/test.md

+10-10
Original file line numberDiff line numberDiff line change
@@ -321,7 +321,7 @@ internally.
321321
<!-- YAML
322322
added: v18.0.0
323323
changes:
324-
- version: REPLACEME
324+
- version: v18.8.0
325325
pr-url: https://github.com/nodejs/node/pull/43554
326326
description: Add a `signal` option.
327327
- version: v18.7.0
@@ -449,7 +449,7 @@ same as [`it([name], { todo: true }[, fn])`][it options].
449449
### `before([, fn][, options])`
450450

451451
<!-- YAML
452-
added: REPLACEME
452+
added: v18.8.0
453453
-->
454454

455455
* `fn` {Function|AsyncFunction} The hook function.
@@ -477,7 +477,7 @@ describe('tests', async () => {
477477
### `after([, fn][, options])`
478478

479479
<!-- YAML
480-
added: REPLACEME
480+
added: v18.8.0
481481
-->
482482

483483
* `fn` {Function|AsyncFunction} The hook function.
@@ -505,7 +505,7 @@ describe('tests', async () => {
505505
### `beforeEach([, fn][, options])`
506506

507507
<!-- YAML
508-
added: REPLACEME
508+
added: v18.8.0
509509
-->
510510

511511
* `fn` {Function|AsyncFunction} The hook function.
@@ -534,7 +534,7 @@ describe('tests', async () => {
534534
### `afterEach([, fn][, options])`
535535

536536
<!-- YAML
537-
added: REPLACEME
537+
added: v18.8.0
538538
-->
539539

540540
* `fn` {Function|AsyncFunction} The hook function.
@@ -573,7 +573,7 @@ exposed as part of the API.
573573
### `context.beforeEach([, fn][, options])`
574574

575575
<!-- YAML
576-
added: REPLACEME
576+
added: v18.8.0
577577
-->
578578

579579
* `fn` {Function|AsyncFunction} The hook function. The first argument
@@ -605,7 +605,7 @@ test('top level test', async (t) => {
605605
### `context.afterEach([, fn][, options])`
606606

607607
<!-- YAML
608-
added: REPLACEME
608+
added: v18.8.0
609609
-->
610610

611611
* `fn` {Function|AsyncFunction} The hook function. The first argument
@@ -655,7 +655,7 @@ test('top level test', (t) => {
655655
### `context.name`
656656

657657
<!-- YAML
658-
added: REPLACEME
658+
added: v18.8.0
659659
-->
660660

661661
The name of the test.
@@ -743,7 +743,7 @@ test('top level test', (t) => {
743743
<!-- YAML
744744
added: v18.0.0
745745
changes:
746-
- version: REPLACEME
746+
- version: v18.8.0
747747
pr-url: https://github.com/nodejs/node/pull/43554
748748
description: Add a `signal` option.
749749
- version: v18.7.0
@@ -806,7 +806,7 @@ exposed as part of the API.
806806
### `context.name`
807807

808808
<!-- YAML
809-
added: REPLACEME
809+
added: v18.8.0
810810
-->
811811

812812
The name of the suite.

0 commit comments

Comments
 (0)