Commit Graph

38501 Commits

Author SHA1 Message Date
HinataKah0
2e8f8eb4e3 test_runner: report failing tests after summary
Re-output failing tests after summary has been printed.
This behavior follows other popular test runners
(e.g. jest, mocha, etc...).

Updated SpecReporter:
1. When there is a 'test:fail' event, the test will be
stored.
2. After no more input, all the failed tests will be
flushed.
3. Extract the logic for formatting a test report
into a re-usable function.

Fixes: https://github.com/nodejs/node/issues/47110
PR-URL: https://github.com/nodejs/node/pull/47164
Reviewed-By: Moshe Atlow <moshe@atlow.co.il>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
2023-03-23 18:45:53 +00:00
Debadree Chatterjee
73645d6227 fs: invalidate blob created from empty file when written to
Fixes: https://github.com/nodejs/node/issues/47161
PR-URL: https://github.com/nodejs/node/pull/47199
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Michaël Zasso <targos@protonmail.com>
2023-03-23 18:28:43 +00:00
Yagiz Nizipli
f51c152f60 util: reduce javascript call for ToUSVString
PR-URL: https://github.com/nodejs/node/pull/47192
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Reviewed-By: Joyee Cheung <joyeec9h3@gmail.com>
2023-03-23 15:01:31 +00:00
Antoine du Hamel
820030491f tools: notify on Slack when invalid commit lands
PR-URL: https://github.com/nodejs/node/pull/47178
Reviewed-By: Rich Trott <rtrott@gmail.com>
Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com>
Reviewed-By: Debadree Chatterjee <debadree333@gmail.com>
Reviewed-By: Darshan Sen <raisinten@gmail.com>
Reviewed-By: Tierney Cyren <hello@bnb.im>
Reviewed-By: Akhil Marsonya <akhil.marsonya27@gmail.com>
Reviewed-By: Chengzhong Wu <legendecas@gmail.com>
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
2023-03-23 09:38:17 +00:00
Tobias Nießen
002b30eaa5 doc: remove use of DEFAULT_ENCODING in PBKDF2 docs
There is no point in documenting this legacy behavior, which will emit a
warning when used.

PR-URL: https://github.com/nodejs/node/pull/47181
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Michaël Zasso <targos@protonmail.com>
Reviewed-By: Filip Skokan <panva.ip@gmail.com>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
2023-03-23 00:50:05 +00:00
Node.js GitHub Bot
a2c3061c15 meta: move TSC voting member(s) to regular member(s)
PR-URL: https://github.com/nodejs/node/pull/47180
Reviewed-By: Darshan Sen <raisinten@gmail.com>
Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: Joyee Cheung <joyeec9h3@gmail.com>
Reviewed-By: Rafael Gonzaga <rafael.nunu@hotmail.com>
Reviewed-By: Chengzhong Wu <legendecas@gmail.com>
2023-03-23 00:49:56 +00:00
Stefan Stojanovic
0b66df61ef msi: migrate to WiX4
To be able to build x86, x64, and ARM64 MSI installers with the same WiX
version, migration to WiX4 is required.

PR-URL: https://github.com/nodejs/node/pull/45943
Refs: https://github.com/nodejs/build/issues/2540
Reviewed-By: Michaël Zasso <targos@protonmail.com>
Reviewed-By: Richard Lau <rlau@redhat.com>
2023-03-22 22:16:57 +00:00
Khafra
f2651a0812 url: implement URL.canParse
PR-URL: https://github.com/nodejs/node/pull/47179
Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com>
Reviewed-By: Debadree Chatterjee <debadree333@gmail.com>
2023-03-22 19:44:44 +00:00
Khafra
7bc0e6a4e7 buffer: graduate File from experimental and expose as global
PR-URL: https://github.com/nodejs/node/pull/47153
Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com>
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Reviewed-By: Geoffrey Booth <webadmin@geoffreybooth.com>
Reviewed-By: Robert Nagy <ronagy@icloud.com>
Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com>
2023-03-22 19:28:12 +00:00
Filip Skokan
202a9fa482 tools: update daily wpt actions summary
PR-URL: https://github.com/nodejs/node/pull/47138
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: Michaël Zasso <targos@protonmail.com>
2023-03-22 15:02:53 +00:00
Tobias Nießen
1a18b44028 src: replace impossible THROW with CHECK
The JS layer already verifies that divisor_bits is either a non-negative
32-bit signed integer or null/undefined, in which case it passes -1 to
the C++ layer. In either case, the C++ layer receives a 32-bit signed
integer greater than or equal to -1.

PR-URL: https://github.com/nodejs/node/pull/47168
Reviewed-By: Darshan Sen <raisinten@gmail.com>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
2023-03-22 11:41:15 +00:00
Tobias Nießen
7d84d67364 crypto: unify validation of checkPrime checks
Previously, the JS layer would validate that the value of the 'checks'
option was an unsigned 32-bit integer, otherwise throwing an appropriate
error but with a slightly misleading error message. Then the C++ layer
would validate that the value was an unsigned 31-bit integer, otherwise
throwing an appropriate error, but with a different (and even less
helpful) error message.

Instead, make the JS layer aware of the 31-bit restriction so that no
validation in C++ is necessary and so that the error message always
matches the exact requirement.

PR-URL: https://github.com/nodejs/node/pull/47165
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
2023-03-22 11:41:06 +00:00
Stefan Stojanovic
f08655532b test: skip broken tests win arm64
PR-URL: https://github.com/nodejs/node/pull/47020
Reviewed-By: Richard Lau <rlau@redhat.com>
Reviewed-By: Michaël Zasso <targos@protonmail.com>
2023-03-22 10:54:49 +00:00
Joyee Cheung
434bdde974 inspector: log response and requests in the inspector for debugging
Logs the raw messages from the inspector when NODE_DEBUG_NATIVE
is set to inspector_server to facilitate debugging.

PR-URL: https://github.com/nodejs/node/pull/46941
Reviewed-By: Rafael Gonzaga <rafael.nunu@hotmail.com>
Reviewed-By: Darshan Sen <raisinten@gmail.com>
2023-03-22 09:28:02 +00:00
Gabriel Schulhof
b4365c161c node-api: extend type-tagging to externals
Since externals behave as JavaScript objects on the JavaScript side,
allow them to be type-tagged.

Signed-off-by: Gabriel Schulhof <gabrielschulhof@gmail.com>
PR-URL: https://github.com/nodejs/node/pull/47141
Reviewed-By: Michael Dawson <midawson@redhat.com>
Reviewed-By: Chengzhong Wu <legendecas@gmail.com>
2023-03-22 04:47:08 +00:00
Raz Luvaton
22537f34a4 stream: dont wait for next item in take when finished
PR-URL: https://github.com/nodejs/node/pull/47132
Reviewed-By: Robert Nagy <ronagy@icloud.com>
Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com>
Reviewed-By: Erick Wendel <erick.workspace@gmail.com>
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Reviewed-By: Debadree Chatterjee <debadree333@gmail.com>
2023-03-22 04:46:58 +00:00
Moshe Atlow
f5eedf480c tools: allow test tap output to include unicode characters
PR-URL: https://github.com/nodejs/node/pull/47175
Reviewed-By: Richard Lau <rlau@redhat.com>
Reviewed-By: Michaël Zasso <targos@protonmail.com>
Reviewed-By: Christian Clauss <cclauss@me.com>
2023-03-21 17:27:53 +00:00
Tobias Nießen
1640aeb680 crypto: remove obsolete SSL_OP_* constants
None of these constants have any effect in recent OpenSSL versions, not
even in Node.js release lines that still use OpenSSL 1.1.1.

It is likely rare that these options are still used (intentionally), and
removing them is unlikely to break any existing applications. These
constants can only be passed to the secureOptions option of
tls.createSecureContext() and related APIs, and a value of undefined
will be ignored. Similarly, if a bitwise combination of multiple options
is used, undefined constants will not change the behavior because
(a | undefined | b) === (a | b) for (small) integers a and b.

Refs: https://github.com/nodejs/node/pull/46954
Refs: https://github.com/nodejs/node/pull/47066
PR-URL: https://github.com/nodejs/node/pull/47073
Reviewed-By: Filip Skokan <panva.ip@gmail.com>
Reviewed-By: Rafael Gonzaga <rafael.nunu@hotmail.com>
Reviewed-By: Michaël Zasso <targos@protonmail.com>
2023-03-21 10:47:49 +00:00
Moshe Atlow
d1eaded0d1 test_runner: count nested tests
PR-URL: https://github.com/nodejs/node/pull/47094
Fixes: https://github.com/nodejs/node/issues/46762
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com>
2023-03-21 08:16:38 +00:00
Shubham Sharma
965ea9d586 doc: fix typos in async_context.md
PR-URL: https://github.com/nodejs/node/pull/47155
Reviewed-By: Debadree Chatterjee <debadree333@gmail.com>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: Deokjin Kim <deokjin81.kim@gmail.com>
Reviewed-By: Harshitha K P <harshitha014@gmail.com>
Reviewed-By: Chengzhong Wu <legendecas@gmail.com>
2023-03-20 22:21:03 +00:00
Khafra
252a069007 buffer: use private properties for brand checks in File
PR-URL: https://github.com/nodejs/node/pull/47154
Refs: https://github.com/nodejs/node/pull/46904
Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
2023-03-20 22:01:41 +00:00
Node.js GitHub Bot
bc0aa35938 meta: move TSC voting member to regular membership
PR-URL: https://github.com/nodejs/node/pull/46985
Reviewed-By: Richard Lau <rlau@redhat.com>
Reviewed-By: Michael Dawson <midawson@redhat.com>
Reviewed-By: Rich Trott <rtrott@gmail.com>
Reviewed-By: Michaël Zasso <targos@protonmail.com>
Reviewed-By: Darshan Sen <raisinten@gmail.com>
2023-03-20 16:24:07 +00:00
Chengzhong Wu
2984cc38da node-api: document node-api shutdown finalization
As status quo, the cleanup hooks are invoked before the `napi_finalize`
callbacks at the exit of Node.js environments. This gives addons a
chance to release their resource in a proper order manually.

Document this behavior explicitly to advocate the usage on cleanup
hooks instead of relying on the implied invocation of `napi_finalize`
callbacks at shutdown.

PR-URL: https://github.com/nodejs/node/pull/45903
Fixes: https://github.com/nodejs/node/issues/45088
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Michael Dawson <midawson@redhat.com>
2023-03-20 09:58:31 +00:00
Rich Trott
321387e2cb doc: update collaborator guide to reflect TSC changes
Ref: https://github.com/nodejs/TSC/pull/1350
PR-URL: https://github.com/nodejs/node/pull/47126
Refs: https://github.com/nodejs/TSC/pull/1350
Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com>
Reviewed-By: Darshan Sen <raisinten@gmail.com>
2023-03-20 05:08:03 +00:00
Rich Trott
b351f12a85 tools,meta: update README and tools to reflect changes in TSC charter
Ref: https://github.com/nodejs/TSC/pull/1350
PR-URL: https://github.com/nodejs/node/pull/47126
Refs: https://github.com/nodejs/TSC/pull/1350
Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com>
Reviewed-By: Darshan Sen <raisinten@gmail.com>
2023-03-20 05:08:02 +00:00
Rich Trott
3807dfbacd meta: update GOVERNANCE.md to reflect TSC charter changes
Refer to TSC voting members where necessary.

Ref: https://github.com/nodejs/TSC/pull/1350
PR-URL: https://github.com/nodejs/node/pull/47126
Refs: https://github.com/nodejs/TSC/pull/1350
Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com>
Reviewed-By: Darshan Sen <raisinten@gmail.com>
2023-03-20 05:08:01 +00:00
Tobias Nießen
fbd526b15a test: fix 'checks' validation test for checkPrime
This test had two problems:

* The first argument was a number in both cases, which is what caused
  the (expected) ERR_INVALID_ARG_TYPE error -- the validity of the
  'checks' option was not actually verified at all. Thus, the first
  argument should be valid for this particular test.
* The function returned by common.mustNotCall() was passed to
  assert.throws() as a third argument instead of being passed to
  checkPrime() as a third argument. (Isn't JavaScript great?) This again
  led to the (expected) ERR_INVALID_ARG_TYPE error, but again, the
  validity of the 'checks' option was not verified.

Fix both issues by ensuring that all arguments except the 'checks'
option are valid.

Refs: https://github.com/nodejs/node/pull/36997
PR-URL: https://github.com/nodejs/node/pull/47139
Reviewed-By: Filip Skokan <panva.ip@gmail.com>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
2023-03-19 16:48:04 +00:00
Yagiz Nizipli
843856ead7 test: update URL web-platform-tests
PR-URL: https://github.com/nodejs/node/pull/47135
Reviewed-By: Filip Skokan <panva.ip@gmail.com>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
2023-03-19 12:58:38 +00:00
Tobias Nießen
aa30e16716 permission: fix some vulnerabilities in fs
Without this patch, any restrictions imposed by the permission model can
be easily bypassed, granting full read and write access to any file. On
Windows, this could even be used to delete files that are supposed to be
write-protected.

Fixes: https://github.com/nodejs/node/issues/47090
PR-URL: https://github.com/nodejs/node/pull/47091
Reviewed-By: Rafael Gonzaga <rafael.nunu@hotmail.com>
Reviewed-By: Marco Ippolito <marcoippolito54@gmail.com>
Reviewed-By: Rich Trott <rtrott@gmail.com>
2023-03-19 12:58:28 +00:00
Khafra
3904ef8d77 events: add getMaxListeners method
PR-URL: https://github.com/nodejs/node/pull/47039
Reviewed-By: Debadree Chatterjee <debadree333@gmail.com>
Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com>
2023-03-19 12:58:19 +00:00
Cheng Zhao
0fd14e4034 deps: cherry-pick win/arm64/clang fixes
Refs: ngtcp2/nghttp3#112
Refs: ngtcp2/ngtcp2#692
Refs: HdrHistogram/HdrHistogram_c#114
PR-URL: https://github.com/nodejs/node/pull/47011
Refs: https://github.com/ngtcp2/nghttp3/pull/112
Refs: https://github.com/ngtcp2/ngtcp2/pull/692
Refs: https://github.com/HdrHistogram/HdrHistogram_c/pull/114
Reviewed-By: Jiawen Geng <technicalcute@gmail.com>
2023-03-19 09:25:47 +00:00
Filip Skokan
142d6af8c1 test,crypto: update WebCryptoAPI WPT
PR-URL: https://github.com/nodejs/node/pull/47131
Reviewed-By: Tobias Nießen <tniessen@tnie.de>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
2023-03-19 07:33:44 +00:00
Antoine du Hamel
ad2c3c04e6 url: allow extension of user provided URL objects
PR-URL: https://github.com/nodejs/node/pull/46989
Fixes: https://github.com/nodejs/node/issues/46981
Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com>
2023-03-19 03:25:35 +00:00
Antoine du Hamel
f7e9a12017 doc: clarify that fs.create{Read,Write}Stream support AbortSignal
Refs: https://github.com/nodejs/node/pull/36431
PR-URL: https://github.com/nodejs/node/pull/47122
Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com>
Reviewed-By: Debadree Chatterjee <debadree333@gmail.com>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
2023-03-18 17:21:51 +00:00
Julian Dax
35dd93841b doc: improve documentation for util.types.isNativeError()
Makes clear what a native error is by linking the spec. Explains that
`instanceof Error` and util.types.isNativeError() are not equivalent.
Give examples for objects that are `instance of Error` but not native
errors and vice versa. Recommends checking for both if one wants to find
out if something is an error.

PR-URL: https://github.com/nodejs/node/pull/46840
Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de>
2023-03-18 13:13:37 +00:00
Debadree Chatterjee
9ce2f4f5e1 test: reduce flakiness of test-http-remove-header-stays-removed.js
Refs: https://github.com/nodejs/reliability/issues/508
Refs: https://github.com/nodejs/node/pull/46333
PR-URL: https://github.com/nodejs/node/pull/46855
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
2023-03-18 11:09:22 +00:00
Cheng Zhao
0d575fe61a gyp: put filenames in variables
PR-URL: https://github.com/nodejs/node/pull/46965
Reviewed-By: Jiawen Geng <technicalcute@gmail.com>
Reviewed-By: Michaël Zasso <targos@protonmail.com>
2023-03-18 10:24:38 +01:00
Nicolas DUBIEN
aa6e9c80cf vm: properly handle defining props on any value
While it was supposed to fix most of the remaining issues,
https://github.com/nodejs/node/pull/46458 missed some in strict mode.

This PR adds some additional checks. It also clarifies what we are
really checking to execute or not the `GetReturnValue`.

PR-URL: https://github.com/nodejs/node/pull/46615
Reviewed-By: Vladimir de Turckheim <vlad2t@hotmail.com>
Reviewed-By: Anna Henningsen <anna@addaleax.net>
2023-03-18 09:19:19 +00:00
Joyee Cheung
30d92e88c6 doc: rename the startup performance initiative to startup snapshot (#47111)
The initiative has been more focused on startup snapshot integration
which is more of a feature on its own, so rename it to "startup
snapshot".

Background: we are also considering adding a more generic performance
initiative in https://github.com/nodejs/TSC/issues/1343.
2023-03-17 16:22:16 -04:00
Tobias Nießen
9e9f68af95 test: mark test-http-max-sockets as flaky on win32
Refs: https://github.com/nodejs/node/issues/47116
PR-URL: https://github.com/nodejs/node/pull/47134
Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com>
Reviewed-By: Beth Griggs <bethanyngriggs@gmail.com>
2023-03-17 16:33:03 +00:00
Daniel Roe
7deb09cd96 doc: indicate that name is no longer an optional argument
PR-URL: https://github.com/nodejs/node/pull/47102
Reviewed-By: Debadree Chatterjee <debadree333@gmail.com>
Reviewed-By: Chengzhong Wu <legendecas@gmail.com>
Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: Harshitha K P <harshitha014@gmail.com>
2023-03-17 12:48:53 +00:00
Keyhan Vakil
c3537ae8cc src: fix duplication of externalized builtin code
The `else` here was missing, causing us to append the file to its
existing `source` already in the map.

Refs: https://github.com/nodejs/node/pull/45942
PR-URL: https://github.com/nodejs/node/pull/47079
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
2023-03-17 00:20:22 +00:00
Debadree Chatterjee
d51541b720 test_runner: accept \x1b as a escape symbol
Fixes: https://github.com/nodejs/node/issues/46959
PR-URL: https://github.com/nodejs/node/pull/47050
Reviewed-By: Moshe Atlow <moshe@atlow.co.il>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
2023-03-16 20:39:36 +00:00
Keyhan Vakil
8713c83462 src: remove dead comments about return_code_cache
This behavior of sometimes returning the function & other times
returning the code cache was removed a long time ago in the referenced
PR, as evinced by the return type `MaybeLocal<Function>`. Remove these
incorrect comments.

Refs: https://github.com/nodejs/node/pull/24950
PR-URL: https://github.com/nodejs/node/pull/47083
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com>
Reviewed-By: Franziska Hinkelmann <franziska.hinkelmann@gmail.com>
Reviewed-By: Chengzhong Wu <legendecas@gmail.com>
2023-03-16 06:55:19 +00:00
Xuguang Mei
2566400aa2 repl: preserve preview on ESCAPE key press
Fix: #46876
PR-URL: https://github.com/nodejs/node/pull/46878
Fixes: https://github.com/nodejs/node/issues/46876
Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de>
2023-03-16 03:24:23 +00:00
Node.js GitHub Bot
2fc6e03bfa tools: update lint-md-dependencies to rollup@3.19.1
PR-URL: https://github.com/nodejs/node/pull/47045
Reviewed-By: Rich Trott <rtrott@gmail.com>
Reviewed-By: Moshe Atlow <moshe@atlow.co.il>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com>
2023-03-15 19:04:10 +00:00
Tony Gorez
d4ac94502e tools: align update-ada.sh with other scripts
PR-URL: https://github.com/nodejs/node/pull/47044
Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com>
Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: Darshan Sen <raisinten@gmail.com>
Reviewed-By: Marco Ippolito <marcoippolito54@gmail.com>
2023-03-15 19:03:58 +00:00
Michaël Zasso
fa8465794d 2023-03-15, Version 19.8.1 (Current)
Notable changes:

This release contains a single revert of a change that was introduced in v19.8.0
and introduced application crashes.

Fixes: https://github.com/nodejs/node/issues/47096
PR-URL: https://github.com/nodejs/node/pull/47104
2023-03-15 18:11:57 +01:00
Tobias Nießen
124bda90e9 src: remove SSL_CTX_get_tlsext_ticket_keys guards
OPENSSL_NO_TLSEXT was removed from OpenSSL a long time ago and both
OpenSSL and BoringSSL always unconditionally define
SSL_CTX_get_tlsext_ticket_keys now.

PR-URL: https://github.com/nodejs/node/pull/47068
Reviewed-By: Filip Skokan <panva.ip@gmail.com>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
2023-03-15 16:38:58 +00:00
Chengzhong Wu
e6b4d30a2f src: bootstrap Web [Exposed=*] APIs in the shadow realm
This is the initial work to bootstrap Web interfaces that are defined
with extended attributes `[Exposed=*]`.

The ShadowRealm instances are garbage-collected once it is
unreachable. However, V8 can not infer the reference cycles between
the per-realm strong persistent function handles and the realm's
context handle. To allow the context to be gc-ed once it is not
reachable, the per-realm persistent handles are attached to the
context's global object and the persistent handles are set as weak.

PR-URL: https://github.com/nodejs/node/pull/46809
Refs: https://github.com/nodejs/node/issues/42528
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Joyee Cheung <joyeec9h3@gmail.com>
2023-03-16 00:22:06 +08:00