chore: bump node to v20.17.0 (31-x-y) (#43423)
* chore: bump node in DEPS to v20.17.0 * module: disallow CJS <-> ESM edges in a cycle from require(esm) https://github.com/nodejs/node/pull/52264 * src: expose LookupAndCompile with parameters https://github.com/nodejs/node/pull/53886 * src: fix -Wshadow warning https://github.com/nodejs/node/pull/53885 * lib: convert WeakMaps in cjs loader with symbol properties https://github.com/nodejs/node/pull/52095 * src: reduce unnecessary serialization of CLI options in C++ https://github.com/nodejs/node/pull/52451 * lib: improve error message when index not found on cjs https://github.com/nodejs/node/pull/53859 * src,lib: expose getCategoryEnabledBuffer to use on node.http https://github.com/nodejs/node/pull/53602 * deps: update c-ares to v1.32.2 https://github.com/nodejs/node/pull/53865 * chore: fixup patch indices * deps: update V8 to 12.2 https://github.com/nodejs/node/pull/51362 * stream: Expose DuplexPair API https://github.com/nodejs/node/pull/34111 * chore: remove patch * chore: fixup patch misapplication --------- Co-authored-by: electron-roller[bot] <84116207+electron-roller[bot]@users.noreply.github.com> Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
This commit is contained in:
parent
87ecd1e62b
commit
e3908eca41
33 changed files with 261 additions and 354 deletions
2
DEPS
2
DEPS
|
@ -4,7 +4,7 @@ vars = {
|
||||||
'chromium_version':
|
'chromium_version':
|
||||||
'126.0.6478.234',
|
'126.0.6478.234',
|
||||||
'node_version':
|
'node_version':
|
||||||
'v20.16.0',
|
'v20.17.0',
|
||||||
'nan_version':
|
'nan_version':
|
||||||
'e14bdcd1f72d62bca1d541b66da43130384ec213',
|
'e14bdcd1f72d62bca1d541b66da43130384ec213',
|
||||||
'squirrel.mac_version':
|
'squirrel.mac_version':
|
||||||
|
|
|
@ -17,7 +17,6 @@ feat_add_uv_loop_interrupt_on_io_change_option_to_uv_loop_configure.patch
|
||||||
support_v8_sandboxed_pointers.patch
|
support_v8_sandboxed_pointers.patch
|
||||||
build_ensure_native_module_compilation_fails_if_not_using_a_new.patch
|
build_ensure_native_module_compilation_fails_if_not_using_a_new.patch
|
||||||
fix_expose_the_built-in_electron_module_via_the_esm_loader.patch
|
fix_expose_the_built-in_electron_module_via_the_esm_loader.patch
|
||||||
fix_expose_lookupandcompile_with_parameters.patch
|
|
||||||
enable_crashpad_linux_node_processes.patch
|
enable_crashpad_linux_node_processes.patch
|
||||||
fix_lazyload_fs_in_esm_loaders_to_apply_asar_patches.patch
|
fix_lazyload_fs_in_esm_loaders_to_apply_asar_patches.patch
|
||||||
chore_expose_importmoduledynamically_and.patch
|
chore_expose_importmoduledynamically_and.patch
|
||||||
|
@ -25,7 +24,6 @@ test_formally_mark_some_tests_as_flaky.patch
|
||||||
fix_adapt_debugger_tests_for_upstream_v8_changes.patch
|
fix_adapt_debugger_tests_for_upstream_v8_changes.patch
|
||||||
chore_remove_--no-harmony-atomics_related_code.patch
|
chore_remove_--no-harmony-atomics_related_code.patch
|
||||||
fix_account_for_createexternalizablestring_v8_global.patch
|
fix_account_for_createexternalizablestring_v8_global.patch
|
||||||
fix_-wshadow_warning.patch
|
|
||||||
fix_do_not_resolve_electron_entrypoints.patch
|
fix_do_not_resolve_electron_entrypoints.patch
|
||||||
ci_ensure_node_tests_set_electron_run_as_node.patch
|
ci_ensure_node_tests_set_electron_run_as_node.patch
|
||||||
fix_assert_module_in_the_renderer_process.patch
|
fix_assert_module_in_the_renderer_process.patch
|
||||||
|
@ -38,7 +36,6 @@ fix_capture_embedder_exceptions_before_entering_v8.patch
|
||||||
spec_add_iterator_to_global_intrinsics.patch
|
spec_add_iterator_to_global_intrinsics.patch
|
||||||
test_make_test-node-output-v8-warning_generic.patch
|
test_make_test-node-output-v8-warning_generic.patch
|
||||||
test_match_wpt_streams_transferable_transform-stream-members_any_js.patch
|
test_match_wpt_streams_transferable_transform-stream-members_any_js.patch
|
||||||
build_ensure_v8_pointer_compression_sandbox_is_enabled_on_64bit.patch
|
|
||||||
fix_revert_src_lb_reducing_c_calls_of_esm_legacy_main_resolve.patch
|
fix_revert_src_lb_reducing_c_calls_of_esm_legacy_main_resolve.patch
|
||||||
deprecate_vector_v8_local_in_v8.patch
|
deprecate_vector_v8_local_in_v8.patch
|
||||||
fix_remove_deprecated_errno_constants.patch
|
fix_remove_deprecated_errno_constants.patch
|
||||||
|
@ -47,5 +44,5 @@ fix_add_source_location_for_v8_task_runner.patch
|
||||||
cherry-pick_src_remove_calls_to_recently_deprecated_v8_apis.patch
|
cherry-pick_src_remove_calls_to_recently_deprecated_v8_apis.patch
|
||||||
test_update_v8-stats_test_for_v8_12_6.patch
|
test_update_v8-stats_test_for_v8_12_6.patch
|
||||||
src_account_for_openssl_unexpected_version.patch
|
src_account_for_openssl_unexpected_version.patch
|
||||||
windows_32bit_config_change_callback_needs_to_be_stdcall.patch
|
src_use_supported_api_to_get_stalled_tla_messages.patch
|
||||||
fix_building_with_unicode.patch
|
build_don_t_redefine_win32_lean_and_mean.patch
|
||||||
|
|
|
@ -537,10 +537,10 @@ index 0e69d7383762f6b81c5b57698aa9d121d5a9c401..35bbeb37acc7ccb14b4b8a644ec3d4c7
|
||||||
cflags_c = [
|
cflags_c = [
|
||||||
"-mavx512vl",
|
"-mavx512vl",
|
||||||
diff --git a/deps/cares/BUILD.gn b/deps/cares/BUILD.gn
|
diff --git a/deps/cares/BUILD.gn b/deps/cares/BUILD.gn
|
||||||
index ac19ac73ed1e24c61cb679f3851685b79cfc8b39..087e27424f3997575e4e089a57955d04b8802321 100644
|
index ac19ac73ed1e24c61cb679f3851685b79cfc8b39..d083aea4cb895d8425041879f1b22a6ee43a0b60 100644
|
||||||
--- a/deps/cares/BUILD.gn
|
--- a/deps/cares/BUILD.gn
|
||||||
+++ b/deps/cares/BUILD.gn
|
+++ b/deps/cares/BUILD.gn
|
||||||
@@ -1,14 +1,170 @@
|
@@ -1,14 +1,172 @@
|
||||||
-##############################################################################
|
-##############################################################################
|
||||||
-# #
|
-# #
|
||||||
-# DO NOT EDIT THIS FILE! #
|
-# DO NOT EDIT THIS FILE! #
|
||||||
|
@ -566,7 +566,6 @@ index ac19ac73ed1e24c61cb679f3851685b79cfc8b39..087e27424f3997575e4e089a57955d04
|
||||||
+ "include/ares_dns.h",
|
+ "include/ares_dns.h",
|
||||||
+ "include/ares_dns_record.h",
|
+ "include/ares_dns_record.h",
|
||||||
+ "include/ares_nameser.h",
|
+ "include/ares_nameser.h",
|
||||||
+ "include/ares_rules.h",
|
|
||||||
+ "include/ares_version.h",
|
+ "include/ares_version.h",
|
||||||
+ "src/lib/ares__addrinfo2hostent.c",
|
+ "src/lib/ares__addrinfo2hostent.c",
|
||||||
+ "src/lib/ares__addrinfo_localhost.c",
|
+ "src/lib/ares__addrinfo_localhost.c",
|
||||||
|
@ -604,6 +603,8 @@ index ac19ac73ed1e24c61cb679f3851685b79cfc8b39..087e27424f3997575e4e089a57955d04
|
||||||
+ "src/lib/ares_data.h",
|
+ "src/lib/ares_data.h",
|
||||||
+ "src/lib/ares_destroy.c",
|
+ "src/lib/ares_destroy.c",
|
||||||
+ "src/lib/ares_dns_mapping.c",
|
+ "src/lib/ares_dns_mapping.c",
|
||||||
|
+ "src/lib/ares_dns_multistring.c",
|
||||||
|
+ "src/lib/ares_dns_multistring.h",
|
||||||
+ "src/lib/ares_dns_name.c",
|
+ "src/lib/ares_dns_name.c",
|
||||||
+ "src/lib/ares_dns_parse.c",
|
+ "src/lib/ares_dns_parse.c",
|
||||||
+ "src/lib/ares_dns_record.c",
|
+ "src/lib/ares_dns_record.c",
|
||||||
|
@ -637,6 +638,7 @@ index ac19ac73ed1e24c61cb679f3851685b79cfc8b39..087e27424f3997575e4e089a57955d04
|
||||||
+ "src/lib/ares_library_init.c",
|
+ "src/lib/ares_library_init.c",
|
||||||
+ "src/lib/ares_ipv6.h",
|
+ "src/lib/ares_ipv6.h",
|
||||||
+ "src/lib/ares_math.c",
|
+ "src/lib/ares_math.c",
|
||||||
|
+ "src/lib/ares_metrics.c",
|
||||||
+ "src/lib/ares_options.c",
|
+ "src/lib/ares_options.c",
|
||||||
+ "src/lib/ares_parse_a_reply.c",
|
+ "src/lib/ares_parse_a_reply.c",
|
||||||
+ "src/lib/ares_parse_aaaa_reply.c",
|
+ "src/lib/ares_parse_aaaa_reply.c",
|
||||||
|
@ -673,7 +675,6 @@ index ac19ac73ed1e24c61cb679f3851685b79cfc8b39..087e27424f3997575e4e089a57955d04
|
||||||
+ "src/lib/ares_version.c",
|
+ "src/lib/ares_version.c",
|
||||||
+ "src/lib/inet_net_pton.c",
|
+ "src/lib/inet_net_pton.c",
|
||||||
+ "src/lib/inet_ntop.c",
|
+ "src/lib/inet_ntop.c",
|
||||||
+ "src/lib/setup_once.h",
|
|
||||||
+ "src/tools/ares_getopt.c",
|
+ "src/tools/ares_getopt.c",
|
||||||
+ "src/tools/ares_getopt.h",
|
+ "src/tools/ares_getopt.h",
|
||||||
+ ]
|
+ ]
|
||||||
|
@ -694,6 +695,7 @@ index ac19ac73ed1e24c61cb679f3851685b79cfc8b39..087e27424f3997575e4e089a57955d04
|
||||||
+ defines += [ "CARES_PULL_WS2TCPIP_H=1" ]
|
+ defines += [ "CARES_PULL_WS2TCPIP_H=1" ]
|
||||||
+ include_dirs += [ "config/win32" ]
|
+ include_dirs += [ "config/win32" ]
|
||||||
+ sources += [
|
+ sources += [
|
||||||
|
+ "src/lib/ares_sysconfig_win.c",
|
||||||
+ "src/lib/config-win32.h",
|
+ "src/lib/config-win32.h",
|
||||||
+ "src/lib/windows_port.c",
|
+ "src/lib/windows_port.c",
|
||||||
+ ]
|
+ ]
|
||||||
|
@ -1263,10 +1265,10 @@ index 0000000000000000000000000000000000000000..af9cbada10203b387fb9732b346583b1
|
||||||
+}
|
+}
|
||||||
diff --git a/filenames.json b/filenames.json
|
diff --git a/filenames.json b/filenames.json
|
||||||
new file mode 100644
|
new file mode 100644
|
||||||
index 0000000000000000000000000000000000000000..679329d847fbfe303792cab5881287890c9961f4
|
index 0000000000000000000000000000000000000000..646df853a2b985f14fd66cae6af854977c074706
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/filenames.json
|
+++ b/filenames.json
|
||||||
@@ -0,0 +1,736 @@
|
@@ -0,0 +1,737 @@
|
||||||
+// This file is automatically generated by generate_gn_filenames_json.py
|
+// This file is automatically generated by generate_gn_filenames_json.py
|
||||||
+// DO NOT EDIT
|
+// DO NOT EDIT
|
||||||
+{
|
+{
|
||||||
|
@ -1636,6 +1638,7 @@ index 0000000000000000000000000000000000000000..679329d847fbfe303792cab588128789
|
||||||
+ "lib/internal/streams/destroy.js",
|
+ "lib/internal/streams/destroy.js",
|
||||||
+ "lib/internal/streams/duplex.js",
|
+ "lib/internal/streams/duplex.js",
|
||||||
+ "lib/internal/streams/duplexify.js",
|
+ "lib/internal/streams/duplexify.js",
|
||||||
|
+ "lib/internal/streams/duplexpair.js",
|
||||||
+ "lib/internal/streams/end-of-stream.js",
|
+ "lib/internal/streams/end-of-stream.js",
|
||||||
+ "lib/internal/streams/from.js",
|
+ "lib/internal/streams/from.js",
|
||||||
+ "lib/internal/streams/lazy_transform.js",
|
+ "lib/internal/streams/lazy_transform.js",
|
||||||
|
@ -2221,10 +2224,10 @@ index 909fd14345fcd988c381e640280f4b33f2e0c351..800431e6659f95f0495cb90b8fa2cccb
|
||||||
+ args = rebase_path(inputs + outputs, root_build_dir)
|
+ args = rebase_path(inputs + outputs, root_build_dir)
|
||||||
}
|
}
|
||||||
diff --git a/src/node_builtins.cc b/src/node_builtins.cc
|
diff --git a/src/node_builtins.cc b/src/node_builtins.cc
|
||||||
index bbb63df7899d4b9bf80e13eee78453352dd5c75b..804296db12f7864f72648f5f36834a924503e4a6 100644
|
index 706ea4f5cb90525c8ea56f794320a733c45a193f..c7ae7759595bfc7fdc31dab174a7514ddd8345e7 100644
|
||||||
--- a/src/node_builtins.cc
|
--- a/src/node_builtins.cc
|
||||||
+++ b/src/node_builtins.cc
|
+++ b/src/node_builtins.cc
|
||||||
@@ -765,6 +765,7 @@ void BuiltinLoader::RegisterExternalReferences(
|
@@ -773,6 +773,7 @@ void BuiltinLoader::RegisterExternalReferences(
|
||||||
registry->Register(GetNatives);
|
registry->Register(GetNatives);
|
||||||
|
|
||||||
RegisterExternalReferencesForInternalizedBuiltinCode(registry);
|
RegisterExternalReferencesForInternalizedBuiltinCode(registry);
|
||||||
|
@ -2233,7 +2236,7 @@ index bbb63df7899d4b9bf80e13eee78453352dd5c75b..804296db12f7864f72648f5f36834a92
|
||||||
|
|
||||||
} // namespace builtins
|
} // namespace builtins
|
||||||
diff --git a/src/node_builtins.h b/src/node_builtins.h
|
diff --git a/src/node_builtins.h b/src/node_builtins.h
|
||||||
index 75a7f3dd89e096d13ad7d70ed29d301cd56315b5..9a20a275fbe5df9f384b7b1d1d26806e7cd05384 100644
|
index 1cb85b9058d06555382e565dc32192a9fa48ed9f..cec9be01abd107e8612f70daf19b4834e118ffcf 100644
|
||||||
--- a/src/node_builtins.h
|
--- a/src/node_builtins.h
|
||||||
+++ b/src/node_builtins.h
|
+++ b/src/node_builtins.h
|
||||||
@@ -74,6 +74,8 @@ using BuiltinCodeCacheMap =
|
@@ -74,6 +74,8 @@ using BuiltinCodeCacheMap =
|
||||||
|
|
36
patches/node/build_don_t_redefine_win32_lean_and_mean.patch
Normal file
36
patches/node/build_don_t_redefine_win32_lean_and_mean.patch
Normal file
|
@ -0,0 +1,36 @@
|
||||||
|
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Shelley Vohr <shelley.vohr@gmail.com>
|
||||||
|
Date: Fri, 23 Aug 2024 16:50:19 +0200
|
||||||
|
Subject: build: don't redefine WIN32_LEAN_AND_MEAN
|
||||||
|
|
||||||
|
https://github.com/nodejs/node/pull/53722 added a new define for WIN32_LEAN_AND_MEAN
|
||||||
|
without first checking to see if it was defined - other areas in c-ares do this so
|
||||||
|
we should here as well. Compilation errors occur otherwise:
|
||||||
|
|
||||||
|
../../third_party/electron_node/deps/cares/include\ares_build.h(168,11): error: 'WIN32_LEAN_AND_MEAN' macro redefined [-Werror,-Wmacro-redefined]
|
||||||
|
168 | # define WIN32_LEAN_AND_MEAN
|
||||||
|
| ^
|
||||||
|
<command line>(25,9): note: previous definition is here
|
||||||
|
25 | #define WIN32_LEAN_AND_MEAN 1
|
||||||
|
| ^
|
||||||
|
1 error generated.
|
||||||
|
[287 processes, 49437/51449 @ 48.5/s : 1018.562s] CC obj/third_party/electron_node/deps/cares/cares/ares__socket.obj
|
||||||
|
FAILED: obj/third_party/electron_node/deps/cares/cares/ares__socket.obj
|
||||||
|
|
||||||
|
This should be upstreamed.
|
||||||
|
|
||||||
|
diff --git a/deps/cares/include/ares_build.h b/deps/cares/include/ares_build.h
|
||||||
|
index 18a92606a817145302c73b5081b4c989799bc620..bafd26d9210d2347fec41f028e9e65088b83c48c 100644
|
||||||
|
--- a/deps/cares/include/ares_build.h
|
||||||
|
+++ b/deps/cares/include/ares_build.h
|
||||||
|
@@ -165,7 +165,9 @@
|
||||||
|
# define CARES_TYPEOF_ARES_SOCKLEN_T int
|
||||||
|
|
||||||
|
#elif defined(_WIN32)
|
||||||
|
-# define WIN32_LEAN_AND_MEAN
|
||||||
|
+# ifndef WIN32_LEAN_AND_MEAN
|
||||||
|
+# define WIN32_LEAN_AND_MEAN
|
||||||
|
+# endif
|
||||||
|
# define CARES_TYPEOF_ARES_SOCKLEN_T int
|
||||||
|
# define CARES_HAVE_WINDOWS_H 1
|
||||||
|
# define CARES_HAVE_SYS_TYPES_H 1
|
|
@ -33,12 +33,12 @@ index 8d7204f6cb48f783adc4d1c1eb2de0c83b7fffe2..a154559a56bf383d3c26af523c9bb07b
|
||||||
|
|
||||||
// Non-alphabetic chars.
|
// Non-alphabetic chars.
|
||||||
diff --git a/lib/internal/http.js b/lib/internal/http.js
|
diff --git a/lib/internal/http.js b/lib/internal/http.js
|
||||||
index b20b3cd229efcd9701791309361b7d106f315900..6b2820c9dcce5e658b694f53e75d93707c4320d7 100644
|
index c26c322aafc64ed9ca2a7c1fd703555a251db9de..f94bc5824d6c83fd1feca31c572dcfd3ac130bda 100644
|
||||||
--- a/lib/internal/http.js
|
--- a/lib/internal/http.js
|
||||||
+++ b/lib/internal/http.js
|
+++ b/lib/internal/http.js
|
||||||
@@ -10,8 +10,8 @@ const {
|
@@ -10,8 +10,8 @@ const {
|
||||||
const { setUnrefTimeout } = require('internal/timers');
|
const { setUnrefTimeout } = require('internal/timers');
|
||||||
const { trace, isTraceCategoryEnabled } = internalBinding('trace_events');
|
const { getCategoryEnabledBuffer, trace } = internalBinding('trace_events');
|
||||||
const {
|
const {
|
||||||
- CHAR_LOWERCASE_B,
|
- CHAR_LOWERCASE_B,
|
||||||
- CHAR_LOWERCASE_E,
|
- CHAR_LOWERCASE_E,
|
||||||
|
@ -47,7 +47,7 @@ index b20b3cd229efcd9701791309361b7d106f315900..6b2820c9dcce5e658b694f53e75d9370
|
||||||
} = require('internal/constants');
|
} = require('internal/constants');
|
||||||
|
|
||||||
let utcCache;
|
let utcCache;
|
||||||
@@ -44,11 +44,13 @@ function isTraceHTTPEnabled() {
|
@@ -46,11 +46,13 @@ function isTraceHTTPEnabled() {
|
||||||
const traceEventCategory = 'node,node.http';
|
const traceEventCategory = 'node,node.http';
|
||||||
|
|
||||||
function traceBegin(...args) {
|
function traceBegin(...args) {
|
||||||
|
|
|
@ -7,7 +7,7 @@ Subject: build: ensure native module compilation fails if not using a new
|
||||||
This should not be upstreamed, it is a quality-of-life patch for downstream module builders.
|
This should not be upstreamed, it is a quality-of-life patch for downstream module builders.
|
||||||
|
|
||||||
diff --git a/common.gypi b/common.gypi
|
diff --git a/common.gypi b/common.gypi
|
||||||
index 9a27610992612b59eadcc8e481683cf1e6a5dbb6..1fad20645d059ad5f3efaa9279f582f99cb1006b 100644
|
index 689e7fb2339253d0f2be3ccf33ecd76660ccf176..8736ad12eec294070a5160a64248044cd16347c9 100644
|
||||||
--- a/common.gypi
|
--- a/common.gypi
|
||||||
+++ b/common.gypi
|
+++ b/common.gypi
|
||||||
@@ -87,6 +87,8 @@
|
@@ -87,6 +87,8 @@
|
||||||
|
@ -19,7 +19,7 @@ index 9a27610992612b59eadcc8e481683cf1e6a5dbb6..1fad20645d059ad5f3efaa9279f582f9
|
||||||
##### end V8 defaults #####
|
##### end V8 defaults #####
|
||||||
|
|
||||||
# When building native modules using 'npm install' with the system npm,
|
# When building native modules using 'npm install' with the system npm,
|
||||||
@@ -286,6 +288,7 @@
|
@@ -287,6 +289,7 @@
|
||||||
# Defines these mostly for node-gyp to pickup.
|
# Defines these mostly for node-gyp to pickup.
|
||||||
'defines': [
|
'defines': [
|
||||||
'_GLIBCXX_USE_CXX11_ABI=1',
|
'_GLIBCXX_USE_CXX11_ABI=1',
|
||||||
|
@ -27,7 +27,7 @@ index 9a27610992612b59eadcc8e481683cf1e6a5dbb6..1fad20645d059ad5f3efaa9279f582f9
|
||||||
],
|
],
|
||||||
|
|
||||||
# Forcibly disable -Werror. We support a wide range of compilers, it's
|
# Forcibly disable -Werror. We support a wide range of compilers, it's
|
||||||
@@ -415,6 +418,11 @@
|
@@ -416,6 +419,11 @@
|
||||||
}],
|
}],
|
||||||
],
|
],
|
||||||
}],
|
}],
|
||||||
|
@ -40,7 +40,7 @@ index 9a27610992612b59eadcc8e481683cf1e6a5dbb6..1fad20645d059ad5f3efaa9279f582f9
|
||||||
# list in v8/BUILD.gn.
|
# list in v8/BUILD.gn.
|
||||||
['v8_enable_v8_checks == 1', {
|
['v8_enable_v8_checks == 1', {
|
||||||
diff --git a/configure.py b/configure.py
|
diff --git a/configure.py b/configure.py
|
||||||
index f189ba2bf09fc248b3c1ce3c3535b939a4160ad2..2c24db93618f88f5f07e95a3edf63fb7942ac009 100755
|
index 3084cc964cbe6d02f98d08cd6f847ea7f4a3d0db..5b6a3b62082985debf6ebc4bc09a7d056f58514a 100755
|
||||||
--- a/configure.py
|
--- a/configure.py
|
||||||
+++ b/configure.py
|
+++ b/configure.py
|
||||||
@@ -1559,6 +1559,7 @@ def configure_library(lib, output, pkgname=None):
|
@@ -1559,6 +1559,7 @@ def configure_library(lib, output, pkgname=None):
|
||||||
|
@ -52,7 +52,7 @@ index f189ba2bf09fc248b3c1ce3c3535b939a4160ad2..2c24db93618f88f5f07e95a3edf63fb7
|
||||||
o['variables']['v8_enable_javascript_promise_hooks'] = 1
|
o['variables']['v8_enable_javascript_promise_hooks'] = 1
|
||||||
o['variables']['v8_enable_lite_mode'] = 1 if options.v8_lite_mode else 0
|
o['variables']['v8_enable_lite_mode'] = 1 if options.v8_lite_mode else 0
|
||||||
diff --git a/src/node.h b/src/node.h
|
diff --git a/src/node.h b/src/node.h
|
||||||
index c267ed1eeaa2d8b6ecd5a1563a4e9440bf0cca00..e55256996f2c85b0ae3854cbd1b83ca88a3e22cb 100644
|
index 4f2eb9d0aab88b70c86339e750799080e980d7da..df3fb3372d6357b5d77b4f683e309b8483998128 100644
|
||||||
--- a/src/node.h
|
--- a/src/node.h
|
||||||
+++ b/src/node.h
|
+++ b/src/node.h
|
||||||
@@ -22,6 +22,12 @@
|
@@ -22,6 +22,12 @@
|
||||||
|
|
|
@ -1,35 +0,0 @@
|
||||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Shelley Vohr <shelley.vohr@gmail.com>
|
|
||||||
Date: Wed, 17 Jan 2024 16:01:08 +0100
|
|
||||||
Subject: build: ensure v8_pointer_compression_sandbox is enabled on 64bit
|
|
||||||
|
|
||||||
The defines themselves were upstreamed in https://github.com/nodejs/node/pull/50820
|
|
||||||
but the ability to configure the variables themselves were not. This adds that back
|
|
||||||
in.
|
|
||||||
|
|
||||||
This should be upstreamed.
|
|
||||||
|
|
||||||
diff --git a/common.gypi b/common.gypi
|
|
||||||
index 1fad20645d059ad5f3efaa9279f582f99cb1006b..4fbb33550e8a044b92997a42eb6603f151ba1043 100644
|
|
||||||
--- a/common.gypi
|
|
||||||
+++ b/common.gypi
|
|
||||||
@@ -134,6 +134,7 @@
|
|
||||||
['target_arch in "arm ia32 mips mipsel ppc"', {
|
|
||||||
'v8_enable_pointer_compression': 0,
|
|
||||||
'v8_enable_31bit_smis_on_64bit_arch': 0,
|
|
||||||
+ 'v8_enable_sandbox': 0
|
|
||||||
}],
|
|
||||||
['target_arch in "ppc64 s390x"', {
|
|
||||||
'v8_enable_backtrace': 1,
|
|
||||||
diff --git a/configure.py b/configure.py
|
|
||||||
index 2c24db93618f88f5f07e95a3edf63fb7942ac009..4e6dc7378e4435b90246eb072379cea1bfdad09c 100755
|
|
||||||
--- a/configure.py
|
|
||||||
+++ b/configure.py
|
|
||||||
@@ -1573,6 +1573,7 @@ def configure_v8(o):
|
|
||||||
o['variables']['v8_use_siphash'] = 0 if options.without_siphash else 1
|
|
||||||
o['variables']['v8_enable_maglev'] = 1 if options.v8_enable_maglev else 0
|
|
||||||
o['variables']['v8_enable_pointer_compression'] = 1 if options.enable_pointer_compression else 0
|
|
||||||
+ o['variables']['v8_enable_sandbox'] = 1 if options.enable_pointer_compression else 0
|
|
||||||
o['variables']['v8_enable_31bit_smis_on_64bit_arch'] = 1 if options.enable_pointer_compression else 0
|
|
||||||
o['variables']['v8_enable_shared_ro_heap'] = 0 if options.enable_pointer_compression or options.disable_shared_ro_heap else 1
|
|
||||||
o['variables']['v8_enable_extensible_ro_snapshot'] = 0
|
|
|
@ -34,7 +34,7 @@ index f5ecc15159f457cd0b8069c0427b7c758c916c4e..c9ce67391f321989b0af48159b4da3ab
|
||||||
let kResistStopPropagation;
|
let kResistStopPropagation;
|
||||||
|
|
||||||
diff --git a/src/node_builtins.cc b/src/node_builtins.cc
|
diff --git a/src/node_builtins.cc b/src/node_builtins.cc
|
||||||
index 804296db12f7864f72648f5f36834a924503e4a6..2cac503e92640a4683a4be6969f1ed40e42785a0 100644
|
index c7ae7759595bfc7fdc31dab174a7514ddd8345e7..4bf80aa6cc6385dc376fd0a3538efc27fe5bd0a2 100644
|
||||||
--- a/src/node_builtins.cc
|
--- a/src/node_builtins.cc
|
||||||
+++ b/src/node_builtins.cc
|
+++ b/src/node_builtins.cc
|
||||||
@@ -35,6 +35,7 @@ using v8::Value;
|
@@ -35,6 +35,7 @@ using v8::Value;
|
||||||
|
@ -46,10 +46,10 @@ index 804296db12f7864f72648f5f36834a924503e4a6..2cac503e92640a4683a4be6969f1ed40
|
||||||
AddExternalizedBuiltin(
|
AddExternalizedBuiltin(
|
||||||
"internal/deps/cjs-module-lexer/lexer",
|
"internal/deps/cjs-module-lexer/lexer",
|
||||||
diff --git a/src/node_builtins.h b/src/node_builtins.h
|
diff --git a/src/node_builtins.h b/src/node_builtins.h
|
||||||
index 9a20a275fbe5df9f384b7b1d1d26806e7cd05384..a1a9fe7d592f0d57b70dcee8c865b99d71248bf2 100644
|
index cec9be01abd107e8612f70daf19b4834e118ffcf..3d9c6b962423555257bad4ebaad9ebd821d00042 100644
|
||||||
--- a/src/node_builtins.h
|
--- a/src/node_builtins.h
|
||||||
+++ b/src/node_builtins.h
|
+++ b/src/node_builtins.h
|
||||||
@@ -132,6 +132,7 @@ class NODE_EXTERN_PRIVATE BuiltinLoader {
|
@@ -138,6 +138,7 @@ class NODE_EXTERN_PRIVATE BuiltinLoader {
|
||||||
|
|
||||||
// Generated by tools/js2c.py as node_javascript.cc
|
// Generated by tools/js2c.py as node_javascript.cc
|
||||||
void LoadJavaScriptSource(); // Loads data into source_
|
void LoadJavaScriptSource(); // Loads data into source_
|
||||||
|
|
|
@ -15,10 +15,10 @@ This patch is expected to be deleted once we catch up with a Node.js
|
||||||
upgrade that includes the original Node.js commit above.
|
upgrade that includes the original Node.js commit above.
|
||||||
|
|
||||||
diff --git a/src/module_wrap.cc b/src/module_wrap.cc
|
diff --git a/src/module_wrap.cc b/src/module_wrap.cc
|
||||||
index 9ad67e0993da4c3e3f8a14681edbf941cf14e2e6..29ed378d32d452518dc929e60e6038ba4ca38a5c 100644
|
index ff658ec88e5161cd66536ee6e95dba675b16eccc..9bbb8ab908d8d992abb43254860d51f57f56387b 100644
|
||||||
--- a/src/module_wrap.cc
|
--- a/src/module_wrap.cc
|
||||||
+++ b/src/module_wrap.cc
|
+++ b/src/module_wrap.cc
|
||||||
@@ -186,8 +186,7 @@ void ModuleWrap::New(const FunctionCallbackInfo<Value>& args) {
|
@@ -202,8 +202,7 @@ void ModuleWrap::New(const FunctionCallbackInfo<Value>& args) {
|
||||||
}
|
}
|
||||||
|
|
||||||
Local<String> source_text = args[2].As<String>();
|
Local<String> source_text = args[2].As<String>();
|
||||||
|
@ -28,7 +28,7 @@ index 9ad67e0993da4c3e3f8a14681edbf941cf14e2e6..29ed378d32d452518dc929e60e6038ba
|
||||||
line_offset,
|
line_offset,
|
||||||
column_offset,
|
column_offset,
|
||||||
true, // is cross origin
|
true, // is cross origin
|
||||||
@@ -394,7 +393,6 @@ void ModuleWrap::Evaluate(const FunctionCallbackInfo<Value>& args) {
|
@@ -464,7 +463,6 @@ void ModuleWrap::Evaluate(const FunctionCallbackInfo<Value>& args) {
|
||||||
|
|
||||||
ShouldNotAbortOnUncaughtScope no_abort_scope(realm->env());
|
ShouldNotAbortOnUncaughtScope no_abort_scope(realm->env());
|
||||||
TryCatchScope try_catch(realm->env());
|
TryCatchScope try_catch(realm->env());
|
||||||
|
@ -37,7 +37,7 @@ index 9ad67e0993da4c3e3f8a14681edbf941cf14e2e6..29ed378d32d452518dc929e60e6038ba
|
||||||
bool timed_out = false;
|
bool timed_out = false;
|
||||||
bool received_signal = false;
|
bool received_signal = false;
|
||||||
diff --git a/src/node_builtins.cc b/src/node_builtins.cc
|
diff --git a/src/node_builtins.cc b/src/node_builtins.cc
|
||||||
index f9a090f5c3e04403602ba383032e7f3230669a92..3f82db324d406e342abee23ab0d7f7c9807ff652 100644
|
index 4bf80aa6cc6385dc376fd0a3538efc27fe5bd0a2..3e37aa8b0c9696cceb3f3cfab9721f38c74a2fba 100644
|
||||||
--- a/src/node_builtins.cc
|
--- a/src/node_builtins.cc
|
||||||
+++ b/src/node_builtins.cc
|
+++ b/src/node_builtins.cc
|
||||||
@@ -267,7 +267,7 @@ MaybeLocal<Function> BuiltinLoader::LookupAndCompileInternal(
|
@@ -267,7 +267,7 @@ MaybeLocal<Function> BuiltinLoader::LookupAndCompileInternal(
|
||||||
|
|
|
@ -8,10 +8,10 @@ they use themselves as the entry point. We should try to upstream some form
|
||||||
of this.
|
of this.
|
||||||
|
|
||||||
diff --git a/lib/internal/modules/cjs/loader.js b/lib/internal/modules/cjs/loader.js
|
diff --git a/lib/internal/modules/cjs/loader.js b/lib/internal/modules/cjs/loader.js
|
||||||
index 155485dbab0d46bb225fa40e99f555d805659c4f..8183cffe9d7060571c08f696abb7c090e6df3be8 100644
|
index 364469160af5e348f8890417de16a63c0d1dca67..75d5f58fe02fa8cfa7716ffaf761d567ab403a2c 100644
|
||||||
--- a/lib/internal/modules/cjs/loader.js
|
--- a/lib/internal/modules/cjs/loader.js
|
||||||
+++ b/lib/internal/modules/cjs/loader.js
|
+++ b/lib/internal/modules/cjs/loader.js
|
||||||
@@ -1331,6 +1331,13 @@ Module.prototype._compile = function(content, filename) {
|
@@ -1441,6 +1441,13 @@ Module.prototype._compile = function(content, filename, loadAsESM = false) {
|
||||||
if (getOptionValue('--inspect-brk') && process._eval == null) {
|
if (getOptionValue('--inspect-brk') && process._eval == null) {
|
||||||
if (!resolvedArgv) {
|
if (!resolvedArgv) {
|
||||||
// We enter the repl if we're not given a filename argument.
|
// We enter the repl if we're not given a filename argument.
|
||||||
|
@ -26,10 +26,10 @@ index 155485dbab0d46bb225fa40e99f555d805659c4f..8183cffe9d7060571c08f696abb7c090
|
||||||
try {
|
try {
|
||||||
resolvedArgv = Module._resolveFilename(process.argv[1], null, false);
|
resolvedArgv = Module._resolveFilename(process.argv[1], null, false);
|
||||||
diff --git a/lib/internal/process/pre_execution.js b/lib/internal/process/pre_execution.js
|
diff --git a/lib/internal/process/pre_execution.js b/lib/internal/process/pre_execution.js
|
||||||
index 8fad2fe617e4f8d2364b8c9d3cfb27c265f08b5b..710af646aaf97f88ac2ee003d8f83388ccf9a84f 100644
|
index 59308ab817fb864a7b84ecf349c9e08d1c710342..8398657065b28a4451b8fe3996e63838a1645314 100644
|
||||||
--- a/lib/internal/process/pre_execution.js
|
--- a/lib/internal/process/pre_execution.js
|
||||||
+++ b/lib/internal/process/pre_execution.js
|
+++ b/lib/internal/process/pre_execution.js
|
||||||
@@ -244,12 +244,14 @@ function patchProcessObject(expandArgv1) {
|
@@ -245,12 +245,14 @@ function patchProcessObject(expandArgv1) {
|
||||||
if (expandArgv1 && process.argv[1] &&
|
if (expandArgv1 && process.argv[1] &&
|
||||||
!StringPrototypeStartsWith(process.argv[1], '-')) {
|
!StringPrototypeStartsWith(process.argv[1], '-')) {
|
||||||
// Expand process.argv[1] into a full path.
|
// Expand process.argv[1] into a full path.
|
||||||
|
|
|
@ -11,10 +11,10 @@ its own blended handler between Node and Blink.
|
||||||
Not upstreamable.
|
Not upstreamable.
|
||||||
|
|
||||||
diff --git a/lib/internal/modules/esm/utils.js b/lib/internal/modules/esm/utils.js
|
diff --git a/lib/internal/modules/esm/utils.js b/lib/internal/modules/esm/utils.js
|
||||||
index d7867864bba7141b7ba12b171d185a94ed25d01d..d93a248d8a96fe1dffa08b39cfe3ea7b368db54a 100644
|
index 150816057129c147c13ce044474f341581679f34..dd8627653265e22f55e67ec4a47641b20fba6c9d 100644
|
||||||
--- a/lib/internal/modules/esm/utils.js
|
--- a/lib/internal/modules/esm/utils.js
|
||||||
+++ b/lib/internal/modules/esm/utils.js
|
+++ b/lib/internal/modules/esm/utils.js
|
||||||
@@ -24,7 +24,7 @@ const {
|
@@ -30,7 +30,7 @@ const {
|
||||||
ERR_VM_DYNAMIC_IMPORT_CALLBACK_MISSING,
|
ERR_VM_DYNAMIC_IMPORT_CALLBACK_MISSING,
|
||||||
ERR_INVALID_ARG_VALUE,
|
ERR_INVALID_ARG_VALUE,
|
||||||
} = require('internal/errors').codes;
|
} = require('internal/errors').codes;
|
||||||
|
@ -23,7 +23,7 @@ index d7867864bba7141b7ba12b171d185a94ed25d01d..d93a248d8a96fe1dffa08b39cfe3ea7b
|
||||||
const {
|
const {
|
||||||
loadPreloadModules,
|
loadPreloadModules,
|
||||||
initializeFrozenIntrinsics,
|
initializeFrozenIntrinsics,
|
||||||
@@ -236,12 +236,13 @@ let _forceDefaultLoader = false;
|
@@ -273,12 +273,13 @@ let _forceDefaultLoader = false;
|
||||||
* @param {boolean} [forceDefaultLoader=false] - A boolean indicating disabling custom loaders.
|
* @param {boolean} [forceDefaultLoader=false] - A boolean indicating disabling custom loaders.
|
||||||
*/
|
*/
|
||||||
function initializeESM(forceDefaultLoader = false) {
|
function initializeESM(forceDefaultLoader = false) {
|
||||||
|
@ -40,10 +40,10 @@ index d7867864bba7141b7ba12b171d185a94ed25d01d..d93a248d8a96fe1dffa08b39cfe3ea7b
|
||||||
|
|
||||||
/**
|
/**
|
||||||
diff --git a/src/module_wrap.cc b/src/module_wrap.cc
|
diff --git a/src/module_wrap.cc b/src/module_wrap.cc
|
||||||
index 501e4d7b7ea180588737fcbb2bf6ff79abfb9d9a..cce67100588bf6b47d26ee9168a123cb813b822e 100644
|
index eea74bed4bb8a980f99a9a1404c9a2df203ca09c..e862b51293135995c527c32aa3c3579780d7831c 100644
|
||||||
--- a/src/module_wrap.cc
|
--- a/src/module_wrap.cc
|
||||||
+++ b/src/module_wrap.cc
|
+++ b/src/module_wrap.cc
|
||||||
@@ -561,7 +561,7 @@ MaybeLocal<Module> ModuleWrap::ResolveModuleCallback(
|
@@ -752,7 +752,7 @@ MaybeLocal<Module> ModuleWrap::ResolveModuleCallback(
|
||||||
return module->module_.Get(isolate);
|
return module->module_.Get(isolate);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -52,7 +52,7 @@ index 501e4d7b7ea180588737fcbb2bf6ff79abfb9d9a..cce67100588bf6b47d26ee9168a123cb
|
||||||
Local<Context> context,
|
Local<Context> context,
|
||||||
Local<v8::Data> host_defined_options,
|
Local<v8::Data> host_defined_options,
|
||||||
Local<Value> resource_name,
|
Local<Value> resource_name,
|
||||||
@@ -626,12 +626,13 @@ void ModuleWrap::SetImportModuleDynamicallyCallback(
|
@@ -817,12 +817,13 @@ void ModuleWrap::SetImportModuleDynamicallyCallback(
|
||||||
Realm* realm = Realm::GetCurrent(args);
|
Realm* realm = Realm::GetCurrent(args);
|
||||||
HandleScope handle_scope(isolate);
|
HandleScope handle_scope(isolate);
|
||||||
|
|
||||||
|
@ -68,7 +68,7 @@ index 501e4d7b7ea180588737fcbb2bf6ff79abfb9d9a..cce67100588bf6b47d26ee9168a123cb
|
||||||
}
|
}
|
||||||
|
|
||||||
void ModuleWrap::HostInitializeImportMetaObjectCallback(
|
void ModuleWrap::HostInitializeImportMetaObjectCallback(
|
||||||
@@ -673,13 +674,14 @@ void ModuleWrap::SetInitializeImportMetaObjectCallback(
|
@@ -864,13 +865,14 @@ void ModuleWrap::SetInitializeImportMetaObjectCallback(
|
||||||
Realm* realm = Realm::GetCurrent(args);
|
Realm* realm = Realm::GetCurrent(args);
|
||||||
Isolate* isolate = realm->isolate();
|
Isolate* isolate = realm->isolate();
|
||||||
|
|
||||||
|
@ -87,7 +87,7 @@ index 501e4d7b7ea180588737fcbb2bf6ff79abfb9d9a..cce67100588bf6b47d26ee9168a123cb
|
||||||
|
|
||||||
MaybeLocal<Value> ModuleWrap::SyntheticModuleEvaluationStepsCallback(
|
MaybeLocal<Value> ModuleWrap::SyntheticModuleEvaluationStepsCallback(
|
||||||
diff --git a/src/module_wrap.h b/src/module_wrap.h
|
diff --git a/src/module_wrap.h b/src/module_wrap.h
|
||||||
index e17048357feca2419087621ed280de30882a90bc..63682be31ce00a3bf7b9be909cac4b7f9ec02a8e 100644
|
index 45a338b38e01c824f69ea59ee286130c67e9eddf..99bb079df11696fc3ba5e6bcca7e7a42818fe3d1 100644
|
||||||
--- a/src/module_wrap.h
|
--- a/src/module_wrap.h
|
||||||
+++ b/src/module_wrap.h
|
+++ b/src/module_wrap.h
|
||||||
@@ -7,6 +7,7 @@
|
@@ -7,6 +7,7 @@
|
||||||
|
@ -123,7 +123,7 @@ index e17048357feca2419087621ed280de30882a90bc..63682be31ce00a3bf7b9be909cac4b7f
|
||||||
private:
|
private:
|
||||||
ModuleWrap(Realm* realm,
|
ModuleWrap(Realm* realm,
|
||||||
v8::Local<v8::Object> object,
|
v8::Local<v8::Object> object,
|
||||||
@@ -102,7 +112,6 @@ class ModuleWrap : public BaseObject {
|
@@ -110,7 +120,6 @@ class ModuleWrap : public BaseObject {
|
||||||
v8::Local<v8::String> specifier,
|
v8::Local<v8::String> specifier,
|
||||||
v8::Local<v8::FixedArray> import_attributes,
|
v8::Local<v8::FixedArray> import_attributes,
|
||||||
v8::Local<v8::Module> referrer);
|
v8::Local<v8::Module> referrer);
|
||||||
|
|
|
@ -21,10 +21,10 @@ index 606a6f5caa3b11b6d2a9068ed2fd65800530a5eb..080dcce21da05ccea398d8a856deb397
|
||||||
typedef void (*FreeCallback)(char* data, void* hint);
|
typedef void (*FreeCallback)(char* data, void* hint);
|
||||||
|
|
||||||
diff --git a/src/node_errors.h b/src/node_errors.h
|
diff --git a/src/node_errors.h b/src/node_errors.h
|
||||||
index 30f66a7648bff4e9b5cd9e9ba516d9c854482263..9eb9a1a932e2f097827ab24b1f3abd2ce20a51af 100644
|
index ad40141ca92c5a46ae2e4dfa96e4d6c239da8516..c462e5afcaa2328c4908fff462fc7c9fbfc1fd5f 100644
|
||||||
--- a/src/node_errors.h
|
--- a/src/node_errors.h
|
||||||
+++ b/src/node_errors.h
|
+++ b/src/node_errors.h
|
||||||
@@ -227,7 +227,7 @@ inline v8::Local<v8::Value> ERR_BUFFER_TOO_LARGE(v8::Isolate* isolate) {
|
@@ -232,7 +232,7 @@ inline v8::Local<v8::Value> ERR_BUFFER_TOO_LARGE(v8::Isolate* isolate) {
|
||||||
char message[128];
|
char message[128];
|
||||||
snprintf(message, sizeof(message),
|
snprintf(message, sizeof(message),
|
||||||
"Cannot create a Buffer larger than 0x%zx bytes",
|
"Cannot create a Buffer larger than 0x%zx bytes",
|
||||||
|
|
|
@ -8,13 +8,13 @@ which causes the `ELECTRON_RUN_AS_NODE` variable to be lost. This patch
|
||||||
re-injects it.
|
re-injects it.
|
||||||
|
|
||||||
diff --git a/test/common/assertSnapshot.js b/test/common/assertSnapshot.js
|
diff --git a/test/common/assertSnapshot.js b/test/common/assertSnapshot.js
|
||||||
index 88f40281e069b77ac071ac872c4491f749b64e21..0fa102da111fa370406ca74069316fa7a7a3a050 100644
|
index a22455160bd9f71b42c7c9e09939781b2528dceb..233a0c8fb89df91890237e4e7f53b51f245ff64a 100644
|
||||||
--- a/test/common/assertSnapshot.js
|
--- a/test/common/assertSnapshot.js
|
||||||
+++ b/test/common/assertSnapshot.js
|
+++ b/test/common/assertSnapshot.js
|
||||||
@@ -80,6 +80,7 @@ async function spawnAndAssert(filename, transform = (x) => x, { tty = false, ...
|
@@ -83,6 +83,7 @@ async function spawnAndAssert(filename, transform = (x) => x, { tty = false, ...
|
||||||
const flags = common.parseTestFlags(filename);
|
tty ?
|
||||||
const executable = tty ? 'tools/pseudo-tty.py' : process.execPath;
|
[path.join(__dirname, '../..', 'tools/pseudo-tty.py'), process.execPath, ...flags, filename] :
|
||||||
const args = tty ? [process.execPath, ...flags, filename] : [...flags, filename];
|
[...flags, filename];
|
||||||
+ if (options && options.env) options.env.ELECTRON_RUN_AS_NODE = 1;
|
+ if (options && options.env) options.env.ELECTRON_RUN_AS_NODE = 1;
|
||||||
const { stdout, stderr } = await common.spawnPromisified(executable, args, options);
|
const { stdout, stderr } = await common.spawnPromisified(executable, args, options);
|
||||||
await assertSnapshot(transform(`${stdout}${stderr}`), filename);
|
await assertSnapshot(transform(`${stdout}${stderr}`), filename);
|
||||||
|
|
|
@ -9,10 +9,10 @@ This patch can be removed when Electron upgrades to a version of Node.js that
|
||||||
contains the above CL.
|
contains the above CL.
|
||||||
|
|
||||||
diff --git a/src/module_wrap.cc b/src/module_wrap.cc
|
diff --git a/src/module_wrap.cc b/src/module_wrap.cc
|
||||||
index cce67100588bf6b47d26ee9168a123cb813b822e..9ad67e0993da4c3e3f8a14681edbf941cf14e2e6 100644
|
index e862b51293135995c527c32aa3c3579780d7831c..ff658ec88e5161cd66536ee6e95dba675b16eccc 100644
|
||||||
--- a/src/module_wrap.cc
|
--- a/src/module_wrap.cc
|
||||||
+++ b/src/module_wrap.cc
|
+++ b/src/module_wrap.cc
|
||||||
@@ -169,7 +169,9 @@ void ModuleWrap::New(const FunctionCallbackInfo<Value>& args) {
|
@@ -186,7 +186,9 @@ void ModuleWrap::New(const FunctionCallbackInfo<Value>& args) {
|
||||||
export_names[i] = export_name_val.As<String>();
|
export_names[i] = export_name_val.As<String>();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -8,7 +8,7 @@ to child processes spawned with `ELECTRON_RUN_AS_NODE` which is used
|
||||||
by the crashpad client to connect with the handler process.
|
by the crashpad client to connect with the handler process.
|
||||||
|
|
||||||
diff --git a/lib/child_process.js b/lib/child_process.js
|
diff --git a/lib/child_process.js b/lib/child_process.js
|
||||||
index c09fca512584ce2c674ae1d05136ff4cd8ea8471..d4edaa71a7bf6660bad209fbfbc43014bb4bf741 100644
|
index 48870b35ad0f3411f2d509b12d92a9e0d20046f9..e7ef454d2d71207ae7b2788a437b82bf7732716e 100644
|
||||||
--- a/lib/child_process.js
|
--- a/lib/child_process.js
|
||||||
+++ b/lib/child_process.js
|
+++ b/lib/child_process.js
|
||||||
@@ -61,6 +61,7 @@ let debug = require('internal/util/debuglog').debuglog(
|
@@ -61,6 +61,7 @@ let debug = require('internal/util/debuglog').debuglog(
|
||||||
|
@ -27,7 +27,7 @@ index c09fca512584ce2c674ae1d05136ff4cd8ea8471..d4edaa71a7bf6660bad209fbfbc43014
|
||||||
args = [...execArgv, modulePath, ...args];
|
args = [...execArgv, modulePath, ...args];
|
||||||
|
|
||||||
if (typeof options.stdio === 'string') {
|
if (typeof options.stdio === 'string') {
|
||||||
@@ -617,6 +617,22 @@ function normalizeSpawnArguments(file, args, options) {
|
@@ -618,6 +618,22 @@ function normalizeSpawnArguments(file, args, options) {
|
||||||
'options.windowsVerbatimArguments');
|
'options.windowsVerbatimArguments');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -50,7 +50,7 @@ index c09fca512584ce2c674ae1d05136ff4cd8ea8471..d4edaa71a7bf6660bad209fbfbc43014
|
||||||
if (options.shell) {
|
if (options.shell) {
|
||||||
validateArgumentNullCheck(options.shell, 'options.shell');
|
validateArgumentNullCheck(options.shell, 'options.shell');
|
||||||
const command = ArrayPrototypeJoin([file, ...args], ' ');
|
const command = ArrayPrototypeJoin([file, ...args], ' ');
|
||||||
@@ -650,7 +666,6 @@ function normalizeSpawnArguments(file, args, options) {
|
@@ -651,7 +667,6 @@ function normalizeSpawnArguments(file, args, options) {
|
||||||
ArrayPrototypeUnshift(args, file);
|
ArrayPrototypeUnshift(args, file);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,45 +0,0 @@
|
||||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Charles Kerr <charles@charleskerr.com>
|
|
||||||
Date: Fri, 7 Jul 2023 11:28:19 -0500
|
|
||||||
Subject: fix: -Wshadow warning
|
|
||||||
|
|
||||||
In utils.h's `ERROR_AND_ABORT` macro, rename the static local variable
|
|
||||||
`args` to avoid -Wshadow warnings in code that calls `ERROR_AND_ABORT()`
|
|
||||||
or `CHECK()` from a function that already has an `args` variable.
|
|
||||||
|
|
||||||
This patch could be removed after upstreaming to Node.js.
|
|
||||||
|
|
||||||
Example warning:
|
|
||||||
|
|
||||||
In file included from ../../third_party/electron_node/src/inspector/runtime_agent.cc:3:
|
|
||||||
In file included from ../../third_party/electron_node/src/env-inl.h:32:
|
|
||||||
../../third_party/electron_node/src/node_internals.h:72:3: error: declaration shadows a local variable [-Werror,-Wshadow]
|
|
||||||
72 | CHECK(args[0]->IsObject());
|
|
||||||
| ^
|
|
||||||
../../third_party/electron_node/src/util.h:154:7: note: expanded from macro 'CHECK'
|
|
||||||
154 | ERROR_AND_ABORT(expr); \
|
|
||||||
| ^
|
|
||||||
../../third_party/electron_node/src/util.h:132:38: note: expanded from macro 'ERROR_AND_ABORT'
|
|
||||||
132 | static const node::AssertionInfo args = { \
|
|
||||||
| ^
|
|
||||||
../../third_party/electron_node/src/node_internals.h:67:67: note: previous declaration is here
|
|
||||||
67 | void GetSockOrPeerName(const v8::FunctionCallbackInfo<v8::Value>& args) {
|
|
||||||
| ^
|
|
||||||
1 error generated.
|
|
||||||
|
|
||||||
diff --git a/src/util.h b/src/util.h
|
|
||||||
index 3ae876e5484f0ebacfae6749cc336f42cd69bf14..8e9e8289de249119d6b8078abe32db6b885dfaab 100644
|
|
||||||
--- a/src/util.h
|
|
||||||
+++ b/src/util.h
|
|
||||||
@@ -146,9 +146,9 @@ void DumpJavaScriptBacktrace(FILE* fp);
|
|
||||||
do { \
|
|
||||||
/* Make sure that this struct does not end up in inline code, but */ \
|
|
||||||
/* rather in a read-only data section when modifying this code. */ \
|
|
||||||
- static const node::AssertionInfo args = { \
|
|
||||||
+ static const node::AssertionInfo error_and_abort_args = { \
|
|
||||||
__FILE__ ":" STRINGIFY(__LINE__), #expr, PRETTY_FUNCTION_NAME}; \
|
|
||||||
- node::Assert(args); \
|
|
||||||
+ node::Assert(error_and_abort_args); \
|
|
||||||
/* `node::Assert` doesn't return. Add an [[noreturn]] abort() here to */ \
|
|
||||||
/* make the compiler happy about no return value in the caller */ \
|
|
||||||
/* function when calling ERROR_AND_ABORT. */ \
|
|
|
@ -7,7 +7,7 @@ common.gypi is a file that's included in the node header bundle, despite
|
||||||
the fact that we do not build node with gyp.
|
the fact that we do not build node with gyp.
|
||||||
|
|
||||||
diff --git a/common.gypi b/common.gypi
|
diff --git a/common.gypi b/common.gypi
|
||||||
index 0af8af37c6cf02d99456d30e4639bbddf8e6ace9..9a27610992612b59eadcc8e481683cf1e6a5dbb6 100644
|
index 7c0b4a0851b295ee0c86f701c997b739a3cb7a7a..689e7fb2339253d0f2be3ccf33ecd76660ccf176 100644
|
||||||
--- a/common.gypi
|
--- a/common.gypi
|
||||||
+++ b/common.gypi
|
+++ b/common.gypi
|
||||||
@@ -89,6 +89,23 @@
|
@@ -89,6 +89,23 @@
|
||||||
|
|
|
@ -13,7 +13,7 @@ if the override has been disabled.
|
||||||
This will be upstreamed.
|
This will be upstreamed.
|
||||||
|
|
||||||
diff --git a/lib/assert.js b/lib/assert.js
|
diff --git a/lib/assert.js b/lib/assert.js
|
||||||
index 9dfcf80a913942c93b206c6f871ac7807c7a7e81..4d25a22aedf7d7182bb709864e29b7e725336323 100644
|
index eadc3844c20128bb9f9a269e5d599f8febf17421..e4615e55c0847d969e9c95295ddecfc640019c99 100644
|
||||||
--- a/lib/assert.js
|
--- a/lib/assert.js
|
||||||
+++ b/lib/assert.js
|
+++ b/lib/assert.js
|
||||||
@@ -66,6 +66,7 @@ const { inspect } = require('internal/util/inspect');
|
@@ -66,6 +66,7 @@ const { inspect } = require('internal/util/inspect');
|
||||||
|
@ -44,10 +44,10 @@ index 9dfcf80a913942c93b206c6f871ac7807c7a7e81..4d25a22aedf7d7182bb709864e29b7e7
|
||||||
let filename = call.getFileName();
|
let filename = call.getFileName();
|
||||||
const line = call.getLineNumber() - 1;
|
const line = call.getLineNumber() - 1;
|
||||||
diff --git a/src/api/environment.cc b/src/api/environment.cc
|
diff --git a/src/api/environment.cc b/src/api/environment.cc
|
||||||
index f9d29f0065b1de63a62cfdce74a9705c22dd87d7..3f44160f1bd40fc2d4658f10edf0d0b374732ca2 100644
|
index fe41619f45913fe31a59771c8d1af6cde3b89f66..bb6c6d51846fed1d160ec9dcd5a5dd67b4fef911 100644
|
||||||
--- a/src/api/environment.cc
|
--- a/src/api/environment.cc
|
||||||
+++ b/src/api/environment.cc
|
+++ b/src/api/environment.cc
|
||||||
@@ -277,6 +277,9 @@ void SetIsolateErrorHandlers(v8::Isolate* isolate, const IsolateSettings& s) {
|
@@ -244,6 +244,9 @@ void SetIsolateErrorHandlers(v8::Isolate* isolate, const IsolateSettings& s) {
|
||||||
auto* prepare_stack_trace_cb = s.prepare_stack_trace_callback ?
|
auto* prepare_stack_trace_cb = s.prepare_stack_trace_callback ?
|
||||||
s.prepare_stack_trace_callback : PrepareStackTraceCallback;
|
s.prepare_stack_trace_callback : PrepareStackTraceCallback;
|
||||||
isolate->SetPrepareStackTraceCallback(prepare_stack_trace_cb);
|
isolate->SetPrepareStackTraceCallback(prepare_stack_trace_cb);
|
||||||
|
@ -58,18 +58,24 @@ index f9d29f0065b1de63a62cfdce74a9705c22dd87d7..3f44160f1bd40fc2d4658f10edf0d0b3
|
||||||
}
|
}
|
||||||
|
|
||||||
diff --git a/src/node_options.cc b/src/node_options.cc
|
diff --git a/src/node_options.cc b/src/node_options.cc
|
||||||
index 28fbd93c5d4a6f379844e10e556920b7614910d8..53cf93719bea001db09697b56f197815549dc953 100644
|
index 74955717117001393e8b55809b4e4a1424019dad..409c6e3918e3ef7c9d35f87e093cb965cb889dd7 100644
|
||||||
--- a/src/node_options.cc
|
--- a/src/node_options.cc
|
||||||
+++ b/src/node_options.cc
|
+++ b/src/node_options.cc
|
||||||
@@ -1321,6 +1321,11 @@ void GetEmbedderOptions(const FunctionCallbackInfo<Value>& args) {
|
@@ -1393,14 +1393,16 @@ void GetEmbedderOptions(const FunctionCallbackInfo<Value>& args) {
|
||||||
Local<Context> context = env->context();
|
}
|
||||||
Local<Object> ret = Object::New(isolate);
|
Isolate* isolate = args.GetIsolate();
|
||||||
|
|
||||||
+ if (ret->Set(context,
|
- constexpr size_t kOptionsSize = 4;
|
||||||
+ FIXED_ONE_BYTE_STRING(env->isolate(), "hasPrepareStackTraceCallback"),
|
+ constexpr size_t kOptionsSize = 5;
|
||||||
+ Boolean::New(isolate, !env->prepare_stack_trace_callback().IsEmpty()))
|
std::array<Local<Name>, kOptionsSize> names = {
|
||||||
+ .IsNothing()) return;
|
+ FIXED_ONE_BYTE_STRING(env->isolate(), "hasPrepareStackTraceCallback"),
|
||||||
+
|
FIXED_ONE_BYTE_STRING(env->isolate(), "shouldNotRegisterESMLoader"),
|
||||||
if (ret->Set(context,
|
FIXED_ONE_BYTE_STRING(env->isolate(), "noGlobalSearchPaths"),
|
||||||
FIXED_ONE_BYTE_STRING(env->isolate(), "shouldNotRegisterESMLoader"),
|
FIXED_ONE_BYTE_STRING(env->isolate(), "noBrowserGlobals"),
|
||||||
Boolean::New(isolate, env->should_not_register_esm_loader()))
|
FIXED_ONE_BYTE_STRING(env->isolate(), "hasEmbedderPreload")};
|
||||||
|
|
||||||
|
std::array<Local<Value>, kOptionsSize> values = {
|
||||||
|
+ Boolean::New(isolate, env->prepare_stack_trace_callback().IsEmpty()),
|
||||||
|
Boolean::New(isolate, env->should_not_register_esm_loader()),
|
||||||
|
Boolean::New(isolate, env->no_global_search_paths()),
|
||||||
|
Boolean::New(isolate, env->no_browser_globals()),
|
||||||
|
|
|
@ -1,33 +0,0 @@
|
||||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Keeley Hammond <khammond@slack-corp.com>
|
|
||||||
Date: Thu, 25 Jul 2024 15:29:12 -0700
|
|
||||||
Subject: fix: building with UNICODE
|
|
||||||
|
|
||||||
Use the unicode version of 'RegOpenKeyEx' to avoid compilation error on string type.
|
|
||||||
|
|
||||||
Backport of https://github.com/c-ares/c-ares/pull/802.
|
|
||||||
|
|
||||||
diff --git a/deps/cares/src/lib/ares_event_configchg.c b/deps/cares/src/lib/ares_event_configchg.c
|
|
||||||
index c9b39f7b3358f37e61fb95e440695a9b590c2090..b33141ce3a30dd92509de8a4aff1a7fc76a5b915 100644
|
|
||||||
--- a/deps/cares/src/lib/ares_event_configchg.c
|
|
||||||
+++ b/deps/cares/src/lib/ares_event_configchg.c
|
|
||||||
@@ -319,15 +319,15 @@ ares_status_t ares_event_configchg_init(ares_event_configchg_t **configchg,
|
|
||||||
/* Monitor HKLM\SYSTEM\CurrentControlSet\Services\Tcpip6\Parameters\Interfaces
|
|
||||||
* and HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces
|
|
||||||
* for changes via RegNotifyChangeKeyValue() */
|
|
||||||
- if (RegOpenKeyEx(HKEY_LOCAL_MACHINE,
|
|
||||||
- "SYSTEM\\CurrentControlSet\\Services\\Tcpip\\Parameters\\Interfaces",
|
|
||||||
+ if (RegOpenKeyExW(HKEY_LOCAL_MACHINE,
|
|
||||||
+ L"SYSTEM\\CurrentControlSet\\Services\\Tcpip\\Parameters\\Interfaces",
|
|
||||||
0, KEY_NOTIFY, &c->regip4) != ERROR_SUCCESS) {
|
|
||||||
status = ARES_ESERVFAIL;
|
|
||||||
goto done;
|
|
||||||
}
|
|
||||||
|
|
||||||
- if (RegOpenKeyEx(HKEY_LOCAL_MACHINE,
|
|
||||||
- "SYSTEM\\CurrentControlSet\\Services\\Tcpip6\\Parameters\\Interfaces",
|
|
||||||
+ if (RegOpenKeyExW(HKEY_LOCAL_MACHINE,
|
|
||||||
+ L"SYSTEM\\CurrentControlSet\\Services\\Tcpip6\\Parameters\\Interfaces",
|
|
||||||
0, KEY_NOTIFY, &c->regip6) != ERROR_SUCCESS) {
|
|
||||||
status = ARES_ESERVFAIL;
|
|
||||||
goto done;
|
|
|
@ -381,7 +381,7 @@ index fcf1922bcdba733af6c22f142db4f7b099947757..9f72ae4e41a113e752f40795103c2af5
|
||||||
assert.throws(() => crypto.createDiffieHellman('abcdef', g), ex);
|
assert.throws(() => crypto.createDiffieHellman('abcdef', g), ex);
|
||||||
assert.throws(() => crypto.createDiffieHellman('abcdef', 'hex', g), ex);
|
assert.throws(() => crypto.createDiffieHellman('abcdef', 'hex', g), ex);
|
||||||
diff --git a/test/parallel/test-crypto-dh.js b/test/parallel/test-crypto-dh.js
|
diff --git a/test/parallel/test-crypto-dh.js b/test/parallel/test-crypto-dh.js
|
||||||
index fb580e1b315445182538c56fc114742ce896bf4c..36014fe7cb411016d72a7f4ab118923d12e97898 100644
|
index 8ae0a002fec0944737d2c6ae73fc8956e41beb50..5b37236a6c2f1ec1761d8143c8ea6a7e2a837a7a 100644
|
||||||
--- a/test/parallel/test-crypto-dh.js
|
--- a/test/parallel/test-crypto-dh.js
|
||||||
+++ b/test/parallel/test-crypto-dh.js
|
+++ b/test/parallel/test-crypto-dh.js
|
||||||
@@ -55,18 +55,17 @@ const crypto = require('crypto');
|
@@ -55,18 +55,17 @@ const crypto = require('crypto');
|
||||||
|
@ -411,7 +411,7 @@ index fb580e1b315445182538c56fc114742ce896bf4c..36014fe7cb411016d72a7f4ab118923d
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -99,10 +98,16 @@ const crypto = require('crypto');
|
@@ -100,10 +99,16 @@ const crypto = require('crypto');
|
||||||
// Through a fluke of history, g=0 defaults to DH_GENERATOR (2).
|
// Through a fluke of history, g=0 defaults to DH_GENERATOR (2).
|
||||||
{
|
{
|
||||||
const g = 0;
|
const g = 0;
|
||||||
|
|
|
@ -6,7 +6,7 @@ Subject: fix: do not resolve electron entrypoints
|
||||||
This wastes fs cycles and can result in strange behavior if this path actually exists on disk
|
This wastes fs cycles and can result in strange behavior if this path actually exists on disk
|
||||||
|
|
||||||
diff --git a/lib/internal/modules/esm/load.js b/lib/internal/modules/esm/load.js
|
diff --git a/lib/internal/modules/esm/load.js b/lib/internal/modules/esm/load.js
|
||||||
index 449131b9af99744c08d62d73f8d124cef5c9cc71..3df06eff63106aece1009d88fd01df2abdf6d943 100644
|
index 22248b753c14960122f1d6b9bfe6b89fdb8d2010..9d245a04fbcb98dcd1c61e60f7cfe528bd1c8af0 100644
|
||||||
--- a/lib/internal/modules/esm/load.js
|
--- a/lib/internal/modules/esm/load.js
|
||||||
+++ b/lib/internal/modules/esm/load.js
|
+++ b/lib/internal/modules/esm/load.js
|
||||||
@@ -132,7 +132,7 @@ async function defaultLoad(url, context = kEmptyObject) {
|
@@ -132,7 +132,7 @@ async function defaultLoad(url, context = kEmptyObject) {
|
||||||
|
@ -19,19 +19,19 @@ index 449131b9af99744c08d62d73f8d124cef5c9cc71..3df06eff63106aece1009d88fd01df2a
|
||||||
context = { __proto__: context, source };
|
context = { __proto__: context, source };
|
||||||
}
|
}
|
||||||
diff --git a/lib/internal/modules/esm/translators.js b/lib/internal/modules/esm/translators.js
|
diff --git a/lib/internal/modules/esm/translators.js b/lib/internal/modules/esm/translators.js
|
||||||
index 5e79fc2c04ffb6006229920cc1ab61b537fed4c0..d62565bf4fe51be41d9ce6ef3ffc04ed34d17e1a 100644
|
index f3dfc69cd2cdec50bc3b3f7cb2d63349812d87dd..b6f2d7194cb75ecc8c47869761c63184707ade40 100644
|
||||||
--- a/lib/internal/modules/esm/translators.js
|
--- a/lib/internal/modules/esm/translators.js
|
||||||
+++ b/lib/internal/modules/esm/translators.js
|
+++ b/lib/internal/modules/esm/translators.js
|
||||||
@@ -379,6 +379,9 @@ function cjsPreparseModuleExports(filename, source) {
|
@@ -375,6 +375,9 @@ function cjsPreparseModuleExports(filename, source) {
|
||||||
if (cached) {
|
if (module && module[kModuleExportNames] !== undefined) {
|
||||||
return { module, exportNames: cached.exportNames };
|
return { module, exportNames: module[kModuleExportNames] };
|
||||||
}
|
|
||||||
+ if (filename === 'electron') {
|
|
||||||
+ return { module, exportNames: new SafeSet(['default', ...Object.keys(module.exports)]) };
|
|
||||||
+ }
|
|
||||||
}
|
}
|
||||||
|
+ if (filename === 'electron') {
|
||||||
|
+ return { module, exportNames: new SafeSet(['default', ...Object.keys(module.exports)]) };
|
||||||
|
+ }
|
||||||
const loaded = Boolean(module);
|
const loaded = Boolean(module);
|
||||||
if (!loaded) {
|
if (!loaded) {
|
||||||
|
module = new CJSModule(filename);
|
||||||
diff --git a/lib/internal/modules/run_main.js b/lib/internal/modules/run_main.js
|
diff --git a/lib/internal/modules/run_main.js b/lib/internal/modules/run_main.js
|
||||||
index ca401044c0178c46db9b439b27c440a5d7924c84..dc1a682f0a3cf1ba1095c60bf6a6ca992d6043b3 100644
|
index ca401044c0178c46db9b439b27c440a5d7924c84..dc1a682f0a3cf1ba1095c60bf6a6ca992d6043b3 100644
|
||||||
--- a/lib/internal/modules/run_main.js
|
--- a/lib/internal/modules/run_main.js
|
||||||
|
|
|
@ -1,59 +0,0 @@
|
||||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Shelley Vohr <shelley.vohr@gmail.com>
|
|
||||||
Date: Thu, 13 Oct 2022 17:10:01 +0200
|
|
||||||
Subject: fix: expose LookupAndCompile with parameters
|
|
||||||
|
|
||||||
Node.js removed custom parameters from the public version of LookupAndCompile,
|
|
||||||
which we use in Electron. This patch re-exposes a wrapper to allow custom
|
|
||||||
parameters.
|
|
||||||
|
|
||||||
This should be upstreamed.
|
|
||||||
|
|
||||||
diff --git a/src/node_builtins.cc b/src/node_builtins.cc
|
|
||||||
index 2cac503e92640a4683a4be6969f1ed40e42785a0..f9a090f5c3e04403602ba383032e7f3230669a92 100644
|
|
||||||
--- a/src/node_builtins.cc
|
|
||||||
+++ b/src/node_builtins.cc
|
|
||||||
@@ -491,6 +491,18 @@ MaybeLocal<Value> BuiltinLoader::CompileAndCall(Local<Context> context,
|
|
||||||
return fn->Call(context, undefined, argc, argv);
|
|
||||||
}
|
|
||||||
|
|
||||||
+MaybeLocal<Function> BuiltinLoader::LookupAndCompile(
|
|
||||||
+ Local<Context> context,
|
|
||||||
+ const char* id,
|
|
||||||
+ std::vector<Local<String>>* parameters,
|
|
||||||
+ Realm* optional_realm) {
|
|
||||||
+ Isolate* isolate = context->GetIsolate();
|
|
||||||
+
|
|
||||||
+ MaybeLocal<Function> maybe = LookupAndCompileInternal(
|
|
||||||
+ context, id, parameters, optional_realm);
|
|
||||||
+ return maybe;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
bool BuiltinLoader::CompileAllBuiltinsAndCopyCodeCache(
|
|
||||||
Local<Context> context,
|
|
||||||
const std::vector<std::string>& eager_builtins,
|
|
||||||
diff --git a/src/node_builtins.h b/src/node_builtins.h
|
|
||||||
index a1a9fe7d592f0d57b70dcee8c865b99d71248bf2..3279aac04fd20080db258eafa2826c2dda614b90 100644
|
|
||||||
--- a/src/node_builtins.h
|
|
||||||
+++ b/src/node_builtins.h
|
|
||||||
@@ -99,6 +99,12 @@ class NODE_EXTERN_PRIVATE BuiltinLoader {
|
|
||||||
const char* id,
|
|
||||||
Realm* optional_realm);
|
|
||||||
|
|
||||||
+ v8::MaybeLocal<v8::Function> LookupAndCompile(
|
|
||||||
+ v8::Local<v8::Context> context,
|
|
||||||
+ const char* id,
|
|
||||||
+ std::vector<v8::Local<v8::String>>* parameters,
|
|
||||||
+ Realm* optional_realm);
|
|
||||||
+
|
|
||||||
v8::MaybeLocal<v8::Value> CompileAndCall(v8::Local<v8::Context> context,
|
|
||||||
const char* id,
|
|
||||||
int argc,
|
|
||||||
@@ -109,6 +115,7 @@ class NODE_EXTERN_PRIVATE BuiltinLoader {
|
|
||||||
const char* id,
|
|
||||||
Realm* realm);
|
|
||||||
|
|
||||||
+
|
|
||||||
// Returns config.gypi as a JSON string
|
|
||||||
v8::Local<v8::String> GetConfigString(v8::Isolate* isolate);
|
|
||||||
bool Exists(const char* id);
|
|
|
@ -18,7 +18,7 @@ index 1931688e85d05ee2da4f88efb05d635cb43be233..afccc24392abff9eef2b9953fcffeb79
|
||||||
|
|
||||||
/**
|
/**
|
||||||
diff --git a/lib/internal/modules/esm/load.js b/lib/internal/modules/esm/load.js
|
diff --git a/lib/internal/modules/esm/load.js b/lib/internal/modules/esm/load.js
|
||||||
index 5239bc8ed883a54df206d73c5dc0b70942c4f3df..6a15fcae677b3bda58fc85f705862bbcd9feec9d 100644
|
index 7b77af35a1dfebf6ad45ace521f1a55b5fa18293..ac24cf305bd5995ad13b37ee36f9e1fe3589c5d7 100644
|
||||||
--- a/lib/internal/modules/esm/load.js
|
--- a/lib/internal/modules/esm/load.js
|
||||||
+++ b/lib/internal/modules/esm/load.js
|
+++ b/lib/internal/modules/esm/load.js
|
||||||
@@ -142,7 +142,7 @@ async function defaultLoad(url, context = kEmptyObject) {
|
@@ -142,7 +142,7 @@ async function defaultLoad(url, context = kEmptyObject) {
|
||||||
|
@ -30,7 +30,7 @@ index 5239bc8ed883a54df206d73c5dc0b70942c4f3df..6a15fcae677b3bda58fc85f705862bbc
|
||||||
// For backward compatibility reasons, we need to discard the source in
|
// For backward compatibility reasons, we need to discard the source in
|
||||||
// order for the CJS loader to re-fetch it.
|
// order for the CJS loader to re-fetch it.
|
||||||
source = null;
|
source = null;
|
||||||
@@ -224,6 +224,7 @@ function throwIfUnsupportedURLScheme(parsed, experimentalNetworkImports) {
|
@@ -234,6 +234,7 @@ function throwIfUnsupportedURLScheme(parsed, experimentalNetworkImports) {
|
||||||
protocol !== 'file:' &&
|
protocol !== 'file:' &&
|
||||||
protocol !== 'data:' &&
|
protocol !== 'data:' &&
|
||||||
protocol !== 'node:' &&
|
protocol !== 'node:' &&
|
||||||
|
@ -38,7 +38,7 @@ index 5239bc8ed883a54df206d73c5dc0b70942c4f3df..6a15fcae677b3bda58fc85f705862bbc
|
||||||
(
|
(
|
||||||
!experimentalNetworkImports ||
|
!experimentalNetworkImports ||
|
||||||
(
|
(
|
||||||
@@ -232,7 +233,7 @@ function throwIfUnsupportedURLScheme(parsed, experimentalNetworkImports) {
|
@@ -242,7 +243,7 @@ function throwIfUnsupportedURLScheme(parsed, experimentalNetworkImports) {
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
) {
|
) {
|
||||||
|
@ -73,10 +73,10 @@ index e73a8ad60a13925d6773c32cead8d04ec9d96ee7..52cdb7d5e14a18ed7b1b65e429729cf4
|
||||||
parsePackageName(specifier, base);
|
parsePackageName(specifier, base);
|
||||||
|
|
||||||
diff --git a/lib/internal/modules/esm/translators.js b/lib/internal/modules/esm/translators.js
|
diff --git a/lib/internal/modules/esm/translators.js b/lib/internal/modules/esm/translators.js
|
||||||
index 6772bbffd989d2257593bde76c94449dbd9272a8..232cf43c500056896eb754c15334858038b0525c 100644
|
index 8f4b6b25d8889686d00613fd9821b0aa822a946a..89ca269294ee1afa7f5aeb0ac6b8958f7a8b49d0 100644
|
||||||
--- a/lib/internal/modules/esm/translators.js
|
--- a/lib/internal/modules/esm/translators.js
|
||||||
+++ b/lib/internal/modules/esm/translators.js
|
+++ b/lib/internal/modules/esm/translators.js
|
||||||
@@ -283,7 +283,7 @@ function createCJSModuleWrap(url, source, isMain, loadCJS = loadCJSModule) {
|
@@ -272,7 +272,7 @@ function createCJSModuleWrap(url, source, isMain, loadCJS = loadCJSModule) {
|
||||||
|
|
||||||
const { exportNames, module } = cjsPreparseModuleExports(filename, source);
|
const { exportNames, module } = cjsPreparseModuleExports(filename, source);
|
||||||
cjsCache.set(url, module);
|
cjsCache.set(url, module);
|
||||||
|
@ -85,7 +85,7 @@ index 6772bbffd989d2257593bde76c94449dbd9272a8..232cf43c500056896eb754c153348580
|
||||||
[...exportNames] : ['default', ...exportNames];
|
[...exportNames] : ['default', ...exportNames];
|
||||||
|
|
||||||
if (isMain) {
|
if (isMain) {
|
||||||
@@ -305,8 +305,8 @@ function createCJSModuleWrap(url, source, isMain, loadCJS = loadCJSModule) {
|
@@ -294,8 +294,8 @@ function createCJSModuleWrap(url, source, isMain, loadCJS = loadCJSModule) {
|
||||||
({ exports } = module);
|
({ exports } = module);
|
||||||
}
|
}
|
||||||
for (const exportName of exportNames) {
|
for (const exportName of exportNames) {
|
||||||
|
@ -96,7 +96,7 @@ index 6772bbffd989d2257593bde76c94449dbd9272a8..232cf43c500056896eb754c153348580
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
// We might trigger a getter -> dont fail.
|
// We might trigger a getter -> dont fail.
|
||||||
@@ -331,6 +331,10 @@ translators.set('require-commonjs', (url, source, isMain) => {
|
@@ -329,6 +329,10 @@ translators.set('require-commonjs', (url, source, isMain) => {
|
||||||
return createCJSModuleWrap(url, source);
|
return createCJSModuleWrap(url, source);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -108,7 +108,7 @@ index 6772bbffd989d2257593bde76c94449dbd9272a8..232cf43c500056896eb754c153348580
|
||||||
// or as the initial entry point when the ESM loader handles a CommonJS entry.
|
// or as the initial entry point when the ESM loader handles a CommonJS entry.
|
||||||
translators.set('commonjs', async function commonjsStrategy(url, source,
|
translators.set('commonjs', async function commonjsStrategy(url, source,
|
||||||
diff --git a/lib/internal/url.js b/lib/internal/url.js
|
diff --git a/lib/internal/url.js b/lib/internal/url.js
|
||||||
index 34fb672ecb62b83cfb6a3a7484354165f4b02a85..679cb1302dfeb4a50d34219efccc73b518587066 100644
|
index 4103775560644e4f1a78bf11da6cc07d5dc4cda2..474cf3b44d680c4c897553d5e98c3c43699e6592 100644
|
||||||
--- a/lib/internal/url.js
|
--- a/lib/internal/url.js
|
||||||
+++ b/lib/internal/url.js
|
+++ b/lib/internal/url.js
|
||||||
@@ -1459,6 +1459,8 @@ function fileURLToPath(path, options = kEmptyObject) {
|
@@ -1459,6 +1459,8 @@ function fileURLToPath(path, options = kEmptyObject) {
|
||||||
|
|
|
@ -7,10 +7,10 @@ Subject: fix: expose tracing::Agent and use tracing::TracingController instead
|
||||||
This API is used by Electron to create Node's tracing controller.
|
This API is used by Electron to create Node's tracing controller.
|
||||||
|
|
||||||
diff --git a/src/api/environment.cc b/src/api/environment.cc
|
diff --git a/src/api/environment.cc b/src/api/environment.cc
|
||||||
index cdc2f7aaa8efd8b5d9090455c92d81b2bef460b7..12414204361e7227f7f7736a07388ade3f093e00 100644
|
index cb4095dee52c5a5d40815c20c33065fd03ce0804..60be2353cf0e77287dfda965c820cf36655a7ce5 100644
|
||||||
--- a/src/api/environment.cc
|
--- a/src/api/environment.cc
|
||||||
+++ b/src/api/environment.cc
|
+++ b/src/api/environment.cc
|
||||||
@@ -591,6 +591,10 @@ MultiIsolatePlatform* GetMultiIsolatePlatform(IsolateData* env) {
|
@@ -558,6 +558,10 @@ MultiIsolatePlatform* GetMultiIsolatePlatform(IsolateData* env) {
|
||||||
return env->platform();
|
return env->platform();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -22,7 +22,7 @@ index cdc2f7aaa8efd8b5d9090455c92d81b2bef460b7..12414204361e7227f7f7736a07388ade
|
||||||
int thread_pool_size,
|
int thread_pool_size,
|
||||||
node::tracing::TracingController* tracing_controller) {
|
node::tracing::TracingController* tracing_controller) {
|
||||||
diff --git a/src/node.h b/src/node.h
|
diff --git a/src/node.h b/src/node.h
|
||||||
index 7047a667f7f1b2a09aa409b2933aad4b3a4af929..c267ed1eeaa2d8b6ecd5a1563a4e9440bf0cca00 100644
|
index 6373adacb628459a4c9d7237da2587aee318e2d8..4f2eb9d0aab88b70c86339e750799080e980d7da 100644
|
||||||
--- a/src/node.h
|
--- a/src/node.h
|
||||||
+++ b/src/node.h
|
+++ b/src/node.h
|
||||||
@@ -133,6 +133,7 @@ struct SnapshotData;
|
@@ -133,6 +133,7 @@ struct SnapshotData;
|
||||||
|
@ -33,7 +33,7 @@ index 7047a667f7f1b2a09aa409b2933aad4b3a4af929..c267ed1eeaa2d8b6ecd5a1563a4e9440
|
||||||
class TracingController;
|
class TracingController;
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -828,6 +829,8 @@ NODE_EXTERN void GetNodeReport(Environment* env,
|
@@ -832,6 +833,8 @@ NODE_EXTERN void GetNodeReport(Environment* env,
|
||||||
NODE_EXTERN MultiIsolatePlatform* GetMultiIsolatePlatform(Environment* env);
|
NODE_EXTERN MultiIsolatePlatform* GetMultiIsolatePlatform(Environment* env);
|
||||||
NODE_EXTERN MultiIsolatePlatform* GetMultiIsolatePlatform(IsolateData* env);
|
NODE_EXTERN MultiIsolatePlatform* GetMultiIsolatePlatform(IsolateData* env);
|
||||||
|
|
||||||
|
|
|
@ -48,10 +48,10 @@ index 67cd4f2adf15e7d8511f561c54163b1842e971af..7e0e1a62289289b8362870ba4869c974
|
||||||
|
|
||||||
const EVP_MD* digest = nullptr;
|
const EVP_MD* digest = nullptr;
|
||||||
diff --git a/src/crypto/crypto_common.cc b/src/crypto/crypto_common.cc
|
diff --git a/src/crypto/crypto_common.cc b/src/crypto/crypto_common.cc
|
||||||
index 962018583360a137639682d4aec8b0ebad2f3070..f8ec40885905abbbe0da0f285ff9e83694c2b620 100644
|
index 85d48dfd2c15c453707bf6eb94e22f89b4f856b2..a68488a1b2bfb099ff9e14c038aea2cbd7765e1b 100644
|
||||||
--- a/src/crypto/crypto_common.cc
|
--- a/src/crypto/crypto_common.cc
|
||||||
+++ b/src/crypto/crypto_common.cc
|
+++ b/src/crypto/crypto_common.cc
|
||||||
@@ -166,7 +166,7 @@ const char* GetClientHelloALPN(const SSLPointer& ssl) {
|
@@ -158,7 +158,7 @@ const char* GetClientHelloALPN(const SSLPointer& ssl) {
|
||||||
const unsigned char* buf;
|
const unsigned char* buf;
|
||||||
size_t len;
|
size_t len;
|
||||||
size_t rem;
|
size_t rem;
|
||||||
|
@ -60,7 +60,7 @@ index 962018583360a137639682d4aec8b0ebad2f3070..f8ec40885905abbbe0da0f285ff9e836
|
||||||
if (!SSL_client_hello_get0_ext(
|
if (!SSL_client_hello_get0_ext(
|
||||||
ssl.get(),
|
ssl.get(),
|
||||||
TLSEXT_TYPE_application_layer_protocol_negotiation,
|
TLSEXT_TYPE_application_layer_protocol_negotiation,
|
||||||
@@ -179,13 +179,15 @@ const char* GetClientHelloALPN(const SSLPointer& ssl) {
|
@@ -171,13 +171,15 @@ const char* GetClientHelloALPN(const SSLPointer& ssl) {
|
||||||
len = (buf[0] << 8) | buf[1];
|
len = (buf[0] << 8) | buf[1];
|
||||||
if (len + 2 != rem) return nullptr;
|
if (len + 2 != rem) return nullptr;
|
||||||
return reinterpret_cast<const char*>(buf + 3);
|
return reinterpret_cast<const char*>(buf + 3);
|
||||||
|
@ -77,7 +77,7 @@ index 962018583360a137639682d4aec8b0ebad2f3070..f8ec40885905abbbe0da0f285ff9e836
|
||||||
if (!SSL_client_hello_get0_ext(
|
if (!SSL_client_hello_get0_ext(
|
||||||
ssl.get(),
|
ssl.get(),
|
||||||
TLSEXT_TYPE_server_name,
|
TLSEXT_TYPE_server_name,
|
||||||
@@ -207,6 +209,8 @@ const char* GetClientHelloServerName(const SSLPointer& ssl) {
|
@@ -199,6 +201,8 @@ const char* GetClientHelloServerName(const SSLPointer& ssl) {
|
||||||
if (len + 2 > rem)
|
if (len + 2 > rem)
|
||||||
return nullptr;
|
return nullptr;
|
||||||
return reinterpret_cast<const char*>(buf + 5);
|
return reinterpret_cast<const char*>(buf + 5);
|
||||||
|
@ -86,7 +86,7 @@ index 962018583360a137639682d4aec8b0ebad2f3070..f8ec40885905abbbe0da0f285ff9e836
|
||||||
}
|
}
|
||||||
|
|
||||||
const char* GetServerName(SSL* ssl) {
|
const char* GetServerName(SSL* ssl) {
|
||||||
@@ -214,7 +218,10 @@ const char* GetServerName(SSL* ssl) {
|
@@ -206,7 +210,10 @@ const char* GetServerName(SSL* ssl) {
|
||||||
}
|
}
|
||||||
|
|
||||||
bool SetGroups(SecureContext* sc, const char* groups) {
|
bool SetGroups(SecureContext* sc, const char* groups) {
|
||||||
|
@ -97,7 +97,7 @@ index 962018583360a137639682d4aec8b0ebad2f3070..f8ec40885905abbbe0da0f285ff9e836
|
||||||
}
|
}
|
||||||
|
|
||||||
// When adding or removing errors below, please also update the list in the API
|
// When adding or removing errors below, please also update the list in the API
|
||||||
@@ -1044,14 +1051,14 @@ MaybeLocal<Array> GetClientHelloCiphers(
|
@@ -1036,14 +1043,14 @@ MaybeLocal<Array> GetClientHelloCiphers(
|
||||||
Environment* env,
|
Environment* env,
|
||||||
const SSLPointer& ssl) {
|
const SSLPointer& ssl) {
|
||||||
EscapableHandleScope scope(env->isolate());
|
EscapableHandleScope scope(env->isolate());
|
||||||
|
@ -116,7 +116,7 @@ index 962018583360a137639682d4aec8b0ebad2f3070..f8ec40885905abbbe0da0f285ff9e836
|
||||||
Local<Object> obj = Object::New(env->isolate());
|
Local<Object> obj = Object::New(env->isolate());
|
||||||
if (!Set(env->context(),
|
if (!Set(env->context(),
|
||||||
obj,
|
obj,
|
||||||
@@ -1104,8 +1111,11 @@ MaybeLocal<Object> GetEphemeralKey(Environment* env, const SSLPointer& ssl) {
|
@@ -1096,8 +1103,11 @@ MaybeLocal<Object> GetEphemeralKey(Environment* env, const SSLPointer& ssl) {
|
||||||
|
|
||||||
EscapableHandleScope scope(env->isolate());
|
EscapableHandleScope scope(env->isolate());
|
||||||
Local<Object> info = Object::New(env->isolate());
|
Local<Object> info = Object::New(env->isolate());
|
||||||
|
@ -268,10 +268,10 @@ index 3fa4a415dc911a13afd90dfb31c1ed4ad0fd268f..fa48dffc31342c44a1c1207b9d4c3dc7
|
||||||
return EVPKeyCtxPointer();
|
return EVPKeyCtxPointer();
|
||||||
|
|
||||||
diff --git a/src/crypto/crypto_keys.cc b/src/crypto/crypto_keys.cc
|
diff --git a/src/crypto/crypto_keys.cc b/src/crypto/crypto_keys.cc
|
||||||
index a4979cf5586a7be6308a917eb020bedafa17f683..e4705482c6d45138deac84c59d8192bb2a284a76 100644
|
index ce28ec8f37a5e483b11284bc866cb649ad7b61cf..eaaa151a770a23a498984cf03c0e9b999a4ad8e8 100644
|
||||||
--- a/src/crypto/crypto_keys.cc
|
--- a/src/crypto/crypto_keys.cc
|
||||||
+++ b/src/crypto/crypto_keys.cc
|
+++ b/src/crypto/crypto_keys.cc
|
||||||
@@ -1241,6 +1241,7 @@ void KeyObjectHandle::GetAsymmetricKeyType(
|
@@ -1239,6 +1239,7 @@ void KeyObjectHandle::GetAsymmetricKeyType(
|
||||||
}
|
}
|
||||||
|
|
||||||
bool KeyObjectHandle::CheckEcKeyData() const {
|
bool KeyObjectHandle::CheckEcKeyData() const {
|
||||||
|
@ -279,7 +279,7 @@ index a4979cf5586a7be6308a917eb020bedafa17f683..e4705482c6d45138deac84c59d8192bb
|
||||||
MarkPopErrorOnReturn mark_pop_error_on_return;
|
MarkPopErrorOnReturn mark_pop_error_on_return;
|
||||||
|
|
||||||
const ManagedEVPPKey& key = data_->GetAsymmetricKey();
|
const ManagedEVPPKey& key = data_->GetAsymmetricKey();
|
||||||
@@ -1259,6 +1260,9 @@ bool KeyObjectHandle::CheckEcKeyData() const {
|
@@ -1257,6 +1258,9 @@ bool KeyObjectHandle::CheckEcKeyData() const {
|
||||||
#else
|
#else
|
||||||
return EVP_PKEY_public_check(ctx.get()) == 1;
|
return EVP_PKEY_public_check(ctx.get()) == 1;
|
||||||
#endif
|
#endif
|
||||||
|
@ -303,7 +303,7 @@ index 48154df7dc91ed7c0d65323199bc2f59dfc68135..6431e5c3062890975854780d15ecb843
|
||||||
THROW_ERR_CRYPTO_OPERATION_FAILED(env, "could not generate prime");
|
THROW_ERR_CRYPTO_OPERATION_FAILED(env, "could not generate prime");
|
||||||
return Nothing<bool>();
|
return Nothing<bool>();
|
||||||
diff --git a/src/crypto/crypto_rsa.cc b/src/crypto/crypto_rsa.cc
|
diff --git a/src/crypto/crypto_rsa.cc b/src/crypto/crypto_rsa.cc
|
||||||
index f222ab9cf5ccbc5dd3399b18d7688efda6672c93..349abd4d06e7f624a071b994271dedc31dc9229a 100644
|
index 23b2b8c56dec8ac600b8f14b78d9e80b7fa3ed3b..e7a8fe4181542252d9142ea9460cacc5b4acd00d 100644
|
||||||
--- a/src/crypto/crypto_rsa.cc
|
--- a/src/crypto/crypto_rsa.cc
|
||||||
+++ b/src/crypto/crypto_rsa.cc
|
+++ b/src/crypto/crypto_rsa.cc
|
||||||
@@ -616,10 +616,11 @@ Maybe<bool> GetRsaKeyDetail(
|
@@ -616,10 +616,11 @@ Maybe<bool> GetRsaKeyDetail(
|
||||||
|
@ -323,10 +323,10 @@ index f222ab9cf5ccbc5dd3399b18d7688efda6672c93..349abd4d06e7f624a071b994271dedc3
|
||||||
|
|
||||||
if (target
|
if (target
|
||||||
diff --git a/src/crypto/crypto_util.cc b/src/crypto/crypto_util.cc
|
diff --git a/src/crypto/crypto_util.cc b/src/crypto/crypto_util.cc
|
||||||
index 5734d8fdc5505e1586f571c19b840bd56e9c9f1f..3034b114e081e2b32dd5b71653927a41af7d48df 100644
|
index 990638ec3993bde40ad3dd40d373d816ebc66a6a..63d971e1fe6b861e29c12f04563701b01fdfb976 100644
|
||||||
--- a/src/crypto/crypto_util.cc
|
--- a/src/crypto/crypto_util.cc
|
||||||
+++ b/src/crypto/crypto_util.cc
|
+++ b/src/crypto/crypto_util.cc
|
||||||
@@ -517,24 +517,15 @@ Maybe<bool> Decorate(Environment* env, Local<Object> obj,
|
@@ -518,24 +518,15 @@ Maybe<void> Decorate(Environment* env,
|
||||||
V(BIO) \
|
V(BIO) \
|
||||||
V(PKCS7) \
|
V(PKCS7) \
|
||||||
V(X509V3) \
|
V(X509V3) \
|
||||||
|
@ -352,7 +352,7 @@ index 5734d8fdc5505e1586f571c19b840bd56e9c9f1f..3034b114e081e2b32dd5b71653927a41
|
||||||
V(USER) \
|
V(USER) \
|
||||||
|
|
||||||
#define V(name) case ERR_LIB_##name: lib = #name "_"; break;
|
#define V(name) case ERR_LIB_##name: lib = #name "_"; break;
|
||||||
@@ -715,7 +706,7 @@ void SecureBuffer(const FunctionCallbackInfo<Value>& args) {
|
@@ -716,7 +707,7 @@ void SecureBuffer(const FunctionCallbackInfo<Value>& args) {
|
||||||
CHECK(args[0]->IsUint32());
|
CHECK(args[0]->IsUint32());
|
||||||
Environment* env = Environment::GetCurrent(args);
|
Environment* env = Environment::GetCurrent(args);
|
||||||
uint32_t len = args[0].As<Uint32>()->Value();
|
uint32_t len = args[0].As<Uint32>()->Value();
|
||||||
|
@ -361,7 +361,7 @@ index 5734d8fdc5505e1586f571c19b840bd56e9c9f1f..3034b114e081e2b32dd5b71653927a41
|
||||||
if (data == nullptr) {
|
if (data == nullptr) {
|
||||||
// There's no memory available for the allocation.
|
// There's no memory available for the allocation.
|
||||||
// Return nothing.
|
// Return nothing.
|
||||||
@@ -726,7 +717,7 @@ void SecureBuffer(const FunctionCallbackInfo<Value>& args) {
|
@@ -727,7 +718,7 @@ void SecureBuffer(const FunctionCallbackInfo<Value>& args) {
|
||||||
data,
|
data,
|
||||||
len,
|
len,
|
||||||
[](void* data, size_t len, void* deleter_data) {
|
[](void* data, size_t len, void* deleter_data) {
|
||||||
|
@ -370,7 +370,7 @@ index 5734d8fdc5505e1586f571c19b840bd56e9c9f1f..3034b114e081e2b32dd5b71653927a41
|
||||||
},
|
},
|
||||||
data);
|
data);
|
||||||
Local<ArrayBuffer> buffer = ArrayBuffer::New(env->isolate(), store);
|
Local<ArrayBuffer> buffer = ArrayBuffer::New(env->isolate(), store);
|
||||||
@@ -734,10 +725,12 @@ void SecureBuffer(const FunctionCallbackInfo<Value>& args) {
|
@@ -735,10 +726,12 @@ void SecureBuffer(const FunctionCallbackInfo<Value>& args) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void SecureHeapUsed(const FunctionCallbackInfo<Value>& args) {
|
void SecureHeapUsed(const FunctionCallbackInfo<Value>& args) {
|
||||||
|
@ -384,7 +384,7 @@ index 5734d8fdc5505e1586f571c19b840bd56e9c9f1f..3034b114e081e2b32dd5b71653927a41
|
||||||
} // namespace
|
} // namespace
|
||||||
|
|
||||||
diff --git a/src/env.h b/src/env.h
|
diff --git a/src/env.h b/src/env.h
|
||||||
index cd8db07919dc4d00675bbaae976e8fa1fcc16028..2310c89227f08cdcca6c4965cc163031af303626 100644
|
index 1ca2d5ed40fa3c72256182fa4ca4b6a09190ca16..c6cc2c874b603f595a008a7d3bc229d6b9834f55 100644
|
||||||
--- a/src/env.h
|
--- a/src/env.h
|
||||||
+++ b/src/env.h
|
+++ b/src/env.h
|
||||||
@@ -49,7 +49,7 @@
|
@@ -49,7 +49,7 @@
|
||||||
|
@ -396,7 +396,7 @@ index cd8db07919dc4d00675bbaae976e8fa1fcc16028..2310c89227f08cdcca6c4965cc163031
|
||||||
#include <openssl/evp.h>
|
#include <openssl/evp.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@@ -1038,7 +1038,7 @@ class Environment : public MemoryRetainer {
|
@@ -1040,7 +1040,7 @@ class Environment : public MemoryRetainer {
|
||||||
kExitInfoFieldCount
|
kExitInfoFieldCount
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -432,7 +432,7 @@ index cf051585e779e2b03bd7b95fe5008b89cc7f8162..9de49c6828468fdf846dcd4ad445390f
|
||||||
#if NODE_OPENSSL_HAS_QUIC
|
#if NODE_OPENSSL_HAS_QUIC
|
||||||
#include <openssl/quic.h>
|
#include <openssl/quic.h>
|
||||||
diff --git a/src/node_options.cc b/src/node_options.cc
|
diff --git a/src/node_options.cc b/src/node_options.cc
|
||||||
index 1ba0bfcd9b3096c4bffe518ad08973edb895e8c3..28fbd93c5d4a6f379844e10e556920b7614910d8 100644
|
index e94e4dbc959cee1fcab68799edc84745dfc07ec8..74955717117001393e8b55809b4e4a1424019dad 100644
|
||||||
--- a/src/node_options.cc
|
--- a/src/node_options.cc
|
||||||
+++ b/src/node_options.cc
|
+++ b/src/node_options.cc
|
||||||
@@ -6,7 +6,7 @@
|
@@ -6,7 +6,7 @@
|
||||||
|
@ -445,7 +445,7 @@ index 1ba0bfcd9b3096c4bffe518ad08973edb895e8c3..28fbd93c5d4a6f379844e10e556920b7
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
diff --git a/src/node_options.h b/src/node_options.h
|
diff --git a/src/node_options.h b/src/node_options.h
|
||||||
index 1357e5b42869e8e3a30d2bf6db0faed565d99754..49c6d8b4162977a926e36bad7183a10502b2beaf 100644
|
index c978c339cbbb388f0f49d26ded0e92bb52a7973a..d13c97e8a0e1ea0212fb34a0178b3a7c74ff43e6 100644
|
||||||
--- a/src/node_options.h
|
--- a/src/node_options.h
|
||||||
+++ b/src/node_options.h
|
+++ b/src/node_options.h
|
||||||
@@ -11,7 +11,7 @@
|
@@ -11,7 +11,7 @@
|
||||||
|
|
|
@ -6,7 +6,7 @@ Subject: fix: lazyload fs in esm loaders to apply asar patches
|
||||||
Changes { foo } from fs to just "fs.foo" so that our patching of fs is applied to esm loaders
|
Changes { foo } from fs to just "fs.foo" so that our patching of fs is applied to esm loaders
|
||||||
|
|
||||||
diff --git a/lib/internal/modules/esm/load.js b/lib/internal/modules/esm/load.js
|
diff --git a/lib/internal/modules/esm/load.js b/lib/internal/modules/esm/load.js
|
||||||
index 6a15fcae677b3bda58fc85f705862bbcd9feec9d..449131b9af99744c08d62d73f8d124cef5c9cc71 100644
|
index ac24cf305bd5995ad13b37ee36f9e1fe3589c5d7..22248b753c14960122f1d6b9bfe6b89fdb8d2010 100644
|
||||||
--- a/lib/internal/modules/esm/load.js
|
--- a/lib/internal/modules/esm/load.js
|
||||||
+++ b/lib/internal/modules/esm/load.js
|
+++ b/lib/internal/modules/esm/load.js
|
||||||
@@ -10,7 +10,7 @@ const { kEmptyObject } = require('internal/util');
|
@@ -10,7 +10,7 @@ const { kEmptyObject } = require('internal/util');
|
||||||
|
@ -78,7 +78,7 @@ index 52cdb7d5e14a18ed7b1b65e429729cf47dce3f98..69f73f829706deddc4f328b78af9d584
|
||||||
// Check for !stat.isDirectory()
|
// Check for !stat.isDirectory()
|
||||||
if (stat !== 1) {
|
if (stat !== 1) {
|
||||||
diff --git a/lib/internal/modules/esm/translators.js b/lib/internal/modules/esm/translators.js
|
diff --git a/lib/internal/modules/esm/translators.js b/lib/internal/modules/esm/translators.js
|
||||||
index 232cf43c500056896eb754c15334858038b0525c..5e79fc2c04ffb6006229920cc1ab61b537fed4c0 100644
|
index 89ca269294ee1afa7f5aeb0ac6b8958f7a8b49d0..f3dfc69cd2cdec50bc3b3f7cb2d63349812d87dd 100644
|
||||||
--- a/lib/internal/modules/esm/translators.js
|
--- a/lib/internal/modules/esm/translators.js
|
||||||
+++ b/lib/internal/modules/esm/translators.js
|
+++ b/lib/internal/modules/esm/translators.js
|
||||||
@@ -36,7 +36,7 @@ const {
|
@@ -36,7 +36,7 @@ const {
|
||||||
|
@ -90,7 +90,7 @@ index 232cf43c500056896eb754c15334858038b0525c..5e79fc2c04ffb6006229920cc1ab61b5
|
||||||
const { dirname, extname, isAbsolute } = require('path');
|
const { dirname, extname, isAbsolute } = require('path');
|
||||||
const {
|
const {
|
||||||
loadBuiltinModule,
|
loadBuiltinModule,
|
||||||
@@ -358,7 +358,7 @@ translators.set('commonjs', async function commonjsStrategy(url, source,
|
@@ -356,7 +356,7 @@ translators.set('commonjs', async function commonjsStrategy(url, source,
|
||||||
|
|
||||||
try {
|
try {
|
||||||
// We still need to read the FS to detect the exports.
|
// We still need to read the FS to detect the exports.
|
||||||
|
@ -99,7 +99,7 @@ index 232cf43c500056896eb754c15334858038b0525c..5e79fc2c04ffb6006229920cc1ab61b5
|
||||||
} catch {
|
} catch {
|
||||||
// Continue regardless of error.
|
// Continue regardless of error.
|
||||||
}
|
}
|
||||||
@@ -427,7 +427,7 @@ function cjsPreparseModuleExports(filename, source) {
|
@@ -424,7 +424,7 @@ function cjsPreparseModuleExports(filename, source) {
|
||||||
isAbsolute(resolved)) {
|
isAbsolute(resolved)) {
|
||||||
// TODO: this should be calling the `load` hook chain to get the source
|
// TODO: this should be calling the `load` hook chain to get the source
|
||||||
// (and fallback to reading the FS only if the source is nullish).
|
// (and fallback to reading the FS only if the source is nullish).
|
||||||
|
|
|
@ -142,7 +142,7 @@ index 69f73f829706deddc4f328b78af9d58434af647d..1d53a2a47423150e822bb917b2725d3a
|
||||||
|
|
||||||
const encodedSepRegEx = /%2F|%5C/i;
|
const encodedSepRegEx = /%2F|%5C/i;
|
||||||
diff --git a/src/node_file.cc b/src/node_file.cc
|
diff --git a/src/node_file.cc b/src/node_file.cc
|
||||||
index b0aa53420c4efb45ccb129cd4db5579de9f3e401..3e3aa383f54f45ab6dd134be29a2dbcf35760163 100644
|
index 80ff36f2463035ed32cb8b7b826bfe94c339dbe2..cca6c6775bc8dd35b897498c7dd65b2e3957ee40 100644
|
||||||
--- a/src/node_file.cc
|
--- a/src/node_file.cc
|
||||||
+++ b/src/node_file.cc
|
+++ b/src/node_file.cc
|
||||||
@@ -19,14 +19,11 @@
|
@@ -19,14 +19,11 @@
|
||||||
|
@ -160,7 +160,7 @@ index b0aa53420c4efb45ccb129cd4db5579de9f3e401..3e3aa383f54f45ab6dd134be29a2dbcf
|
||||||
#include "node_process-inl.h"
|
#include "node_process-inl.h"
|
||||||
#include "node_stat_watcher.h"
|
#include "node_stat_watcher.h"
|
||||||
#include "node_url.h"
|
#include "node_url.h"
|
||||||
@@ -3116,134 +3113,6 @@ constexpr std::array<std::string_view, 10> legacy_main_extensions = {
|
@@ -3127,135 +3124,6 @@ constexpr std::array<std::string_view, 10> legacy_main_extensions = {
|
||||||
|
|
||||||
} // namespace
|
} // namespace
|
||||||
|
|
||||||
|
@ -180,6 +180,8 @@ index b0aa53420c4efb45ccb129cd4db5579de9f3e401..3e3aa383f54f45ab6dd134be29a2dbcf
|
||||||
- return;
|
- return;
|
||||||
- }
|
- }
|
||||||
-
|
-
|
||||||
|
- std::string package_initial_file = "";
|
||||||
|
-
|
||||||
- ada::result<ada::url_aggregator> file_path_url;
|
- ada::result<ada::url_aggregator> file_path_url;
|
||||||
- std::optional<std::string> initial_file_path;
|
- std::optional<std::string> initial_file_path;
|
||||||
- std::string file_path;
|
- std::string file_path;
|
||||||
|
@ -202,6 +204,8 @@ index b0aa53420c4efb45ccb129cd4db5579de9f3e401..3e3aa383f54f45ab6dd134be29a2dbcf
|
||||||
-
|
-
|
||||||
- node::url::FromNamespacedPath(&initial_file_path.value());
|
- node::url::FromNamespacedPath(&initial_file_path.value());
|
||||||
-
|
-
|
||||||
|
- package_initial_file = *initial_file_path;
|
||||||
|
-
|
||||||
- for (int i = 0; i < legacy_main_extensions_with_main_end; i++) {
|
- for (int i = 0; i < legacy_main_extensions_with_main_end; i++) {
|
||||||
- file_path = *initial_file_path + std::string(legacy_main_extensions[i]);
|
- file_path = *initial_file_path + std::string(legacy_main_extensions[i]);
|
||||||
-
|
-
|
||||||
|
@ -257,13 +261,10 @@ index b0aa53420c4efb45ccb129cd4db5579de9f3e401..3e3aa383f54f45ab6dd134be29a2dbcf
|
||||||
- }
|
- }
|
||||||
- }
|
- }
|
||||||
-
|
-
|
||||||
- std::optional<std::string> module_path =
|
- if (package_initial_file == "")
|
||||||
- node::url::FileURLToPath(env, *package_json_url);
|
- package_initial_file = *initial_file_path + ".js";
|
||||||
- std::optional<std::string> module_base;
|
|
||||||
-
|
-
|
||||||
- if (!module_path.has_value()) {
|
- std::optional<std::string> module_base;
|
||||||
- return;
|
|
||||||
- }
|
|
||||||
-
|
-
|
||||||
- if (args.Length() >= 3 && args[2]->IsString()) {
|
- if (args.Length() >= 3 && args[2]->IsString()) {
|
||||||
- Utf8Value utf8_base_path(isolate, args[2]);
|
- Utf8Value utf8_base_path(isolate, args[2]);
|
||||||
|
@ -288,14 +289,14 @@ index b0aa53420c4efb45ccb129cd4db5579de9f3e401..3e3aa383f54f45ab6dd134be29a2dbcf
|
||||||
-
|
-
|
||||||
- THROW_ERR_MODULE_NOT_FOUND(isolate,
|
- THROW_ERR_MODULE_NOT_FOUND(isolate,
|
||||||
- "Cannot find package '%s' imported from %s",
|
- "Cannot find package '%s' imported from %s",
|
||||||
- *module_path,
|
- package_initial_file,
|
||||||
- *module_base);
|
- *module_base);
|
||||||
-}
|
-}
|
||||||
-
|
-
|
||||||
void BindingData::MemoryInfo(MemoryTracker* tracker) const {
|
void BindingData::MemoryInfo(MemoryTracker* tracker) const {
|
||||||
tracker->TrackField("stats_field_array", stats_field_array);
|
tracker->TrackField("stats_field_array", stats_field_array);
|
||||||
tracker->TrackField("stats_field_bigint_array", stats_field_bigint_array);
|
tracker->TrackField("stats_field_bigint_array", stats_field_bigint_array);
|
||||||
@@ -3343,19 +3212,6 @@ InternalFieldInfoBase* BindingData::Serialize(int index) {
|
@@ -3355,19 +3223,6 @@ InternalFieldInfoBase* BindingData::Serialize(int index) {
|
||||||
return info;
|
return info;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -315,7 +316,7 @@ index b0aa53420c4efb45ccb129cd4db5579de9f3e401..3e3aa383f54f45ab6dd134be29a2dbcf
|
||||||
static void CreatePerIsolateProperties(IsolateData* isolate_data,
|
static void CreatePerIsolateProperties(IsolateData* isolate_data,
|
||||||
Local<ObjectTemplate> target) {
|
Local<ObjectTemplate> target) {
|
||||||
Isolate* isolate = isolate_data->isolate();
|
Isolate* isolate = isolate_data->isolate();
|
||||||
@@ -3410,7 +3266,6 @@ static void CreatePerIsolateProperties(IsolateData* isolate_data,
|
@@ -3422,7 +3277,6 @@ static void CreatePerIsolateProperties(IsolateData* isolate_data,
|
||||||
SetMethod(isolate, target, "mkdtemp", Mkdtemp);
|
SetMethod(isolate, target, "mkdtemp", Mkdtemp);
|
||||||
|
|
||||||
StatWatcher::CreatePerIsolateProperties(isolate_data, target);
|
StatWatcher::CreatePerIsolateProperties(isolate_data, target);
|
||||||
|
@ -323,7 +324,7 @@ index b0aa53420c4efb45ccb129cd4db5579de9f3e401..3e3aa383f54f45ab6dd134be29a2dbcf
|
||||||
|
|
||||||
target->Set(
|
target->Set(
|
||||||
FIXED_ONE_BYTE_STRING(isolate, "kFsStatsFieldsNumber"),
|
FIXED_ONE_BYTE_STRING(isolate, "kFsStatsFieldsNumber"),
|
||||||
@@ -3483,7 +3338,6 @@ BindingData* FSReqBase::binding_data() {
|
@@ -3495,7 +3349,6 @@ BindingData* FSReqBase::binding_data() {
|
||||||
void RegisterExternalReferences(ExternalReferenceRegistry* registry) {
|
void RegisterExternalReferences(ExternalReferenceRegistry* registry) {
|
||||||
registry->Register(Access);
|
registry->Register(Access);
|
||||||
StatWatcher::RegisterExternalReferences(registry);
|
StatWatcher::RegisterExternalReferences(registry);
|
||||||
|
@ -350,7 +351,7 @@ index 6f1b55284db0f4f8c70081b4834a074c717f3cc9..a969fff32bd156aa9393c1db9eec474e
|
||||||
SET_SELF_SIZE(BindingData)
|
SET_SELF_SIZE(BindingData)
|
||||||
SET_MEMORY_INFO_NAME(BindingData)
|
SET_MEMORY_INFO_NAME(BindingData)
|
||||||
diff --git a/test/es-module/test-cjs-legacyMainResolve.js b/test/es-module/test-cjs-legacyMainResolve.js
|
diff --git a/test/es-module/test-cjs-legacyMainResolve.js b/test/es-module/test-cjs-legacyMainResolve.js
|
||||||
index 1dc7d8faafe6eb5cea7e43e9783041f2a994be0d..d86d501689b2b72f2b964d6e2a91c5d36b6b62f5 100644
|
index 0bfeb567a22b1f9d9116b749d6cb3a8fda6bcc6a..17f137c595a9fef5f051fafc4682f206034c214c 100644
|
||||||
--- a/test/es-module/test-cjs-legacyMainResolve.js
|
--- a/test/es-module/test-cjs-legacyMainResolve.js
|
||||||
+++ b/test/es-module/test-cjs-legacyMainResolve.js
|
+++ b/test/es-module/test-cjs-legacyMainResolve.js
|
||||||
@@ -82,7 +82,7 @@ describe('legacyMainResolve', () => {
|
@@ -82,7 +82,7 @@ describe('legacyMainResolve', () => {
|
||||||
|
@ -366,7 +367,7 @@ index 1dc7d8faafe6eb5cea7e43e9783041f2a994be0d..d86d501689b2b72f2b964d6e2a91c5d3
|
||||||
);
|
);
|
||||||
assert.throws(
|
assert.throws(
|
||||||
() => legacyMainResolve(packageJsonUrl, { main: null }, packageJsonUrl),
|
() => legacyMainResolve(packageJsonUrl, { main: null }, packageJsonUrl),
|
||||||
- { code: 'ERR_MODULE_NOT_FOUND' },
|
- { message: /index\.js/, code: 'ERR_MODULE_NOT_FOUND' },
|
||||||
+ { code: 'ERR_INTERNAL_ASSERTION' },
|
+ { code: 'ERR_INTERNAL_ASSERTION' },
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
@ -375,12 +376,21 @@ index 1dc7d8faafe6eb5cea7e43e9783041f2a994be0d..d86d501689b2b72f2b964d6e2a91c5d3
|
||||||
const packageJsonUrl = pathToFileURL('/c/file%20with%20percents/package.json');
|
const packageJsonUrl = pathToFileURL('/c/file%20with%20percents/package.json');
|
||||||
assert.throws(
|
assert.throws(
|
||||||
() => legacyMainResolve(packageJsonUrl, { main: null }, packageJsonUrl),
|
() => legacyMainResolve(packageJsonUrl, { main: null }, packageJsonUrl),
|
||||||
- { code: 'ERR_MODULE_NOT_FOUND' },
|
- { message: /index\.js/, code: 'ERR_MODULE_NOT_FOUND' },
|
||||||
+ { code: 'ERR_INTERNAL_ASSERTION' },
|
+ { code: 'ERR_INTERNAL_ASSERTION' },
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -150,7 +150,7 @@ describe('legacyMainResolve', () => {
|
@@ -150,7 +150,7 @@ describe('legacyMainResolve', () => {
|
||||||
|
);
|
||||||
|
assert.throws(
|
||||||
|
() => legacyMainResolve(packageJsonUrl, { main: './index.node' }, packageJsonUrl),
|
||||||
|
- { message: /index\.node/, code: 'ERR_MODULE_NOT_FOUND' },
|
||||||
|
+ { code: 'ERR_INTERNAL_ASSERTION' },
|
||||||
|
);
|
||||||
|
});
|
||||||
|
|
||||||
|
@@ -163,7 +163,7 @@ describe('legacyMainResolve', () => {
|
||||||
);
|
);
|
||||||
assert.throws(
|
assert.throws(
|
||||||
() => legacyMainResolve(packageJsonUrl, { main: null }, undefined),
|
() => legacyMainResolve(packageJsonUrl, { main: null }, undefined),
|
||||||
|
|
|
@ -6,10 +6,10 @@ Subject: Pass all globals through "require"
|
||||||
(cherry picked from commit 7d015419cb7a0ecfe6728431a4ed2056cd411d62)
|
(cherry picked from commit 7d015419cb7a0ecfe6728431a4ed2056cd411d62)
|
||||||
|
|
||||||
diff --git a/lib/internal/modules/cjs/loader.js b/lib/internal/modules/cjs/loader.js
|
diff --git a/lib/internal/modules/cjs/loader.js b/lib/internal/modules/cjs/loader.js
|
||||||
index 7bbd59e16330b59f6c71aa8e6ff59659e42f6cee..276ab42c22b796ee07ce66744187adca6a8b8da4 100644
|
index c284b39b1ac13eaea8776b7b4f457c084dce5fb8..c794751ecd4448119ce33d661e694f83b3323f03 100644
|
||||||
--- a/lib/internal/modules/cjs/loader.js
|
--- a/lib/internal/modules/cjs/loader.js
|
||||||
+++ b/lib/internal/modules/cjs/loader.js
|
+++ b/lib/internal/modules/cjs/loader.js
|
||||||
@@ -148,6 +148,13 @@ const {
|
@@ -185,6 +185,13 @@ const {
|
||||||
CHAR_FORWARD_SLASH,
|
CHAR_FORWARD_SLASH,
|
||||||
} = require('internal/constants');
|
} = require('internal/constants');
|
||||||
|
|
||||||
|
@ -23,8 +23,8 @@ index 7bbd59e16330b59f6c71aa8e6ff59659e42f6cee..276ab42c22b796ee07ce66744187adca
|
||||||
const {
|
const {
|
||||||
isProxy,
|
isProxy,
|
||||||
} = require('internal/util/types');
|
} = require('internal/util/types');
|
||||||
@@ -1353,10 +1360,12 @@ Module.prototype._compile = function(content, filename) {
|
@@ -1464,10 +1471,12 @@ Module.prototype._compile = function(content, filename, loadAsESM = false) {
|
||||||
setHasStartedUserCJSExecution();
|
this[kIsExecuting] = true;
|
||||||
if (inspectorWrapper) {
|
if (inspectorWrapper) {
|
||||||
result = inspectorWrapper(compiledWrapper, thisValue, exports,
|
result = inspectorWrapper(compiledWrapper, thisValue, exports,
|
||||||
- require, module, filename, dirname);
|
- require, module, filename, dirname);
|
||||||
|
@ -36,5 +36,5 @@ index 7bbd59e16330b59f6c71aa8e6ff59659e42f6cee..276ab42c22b796ee07ce66744187adca
|
||||||
+ [exports, require, module, filename,
|
+ [exports, require, module, filename,
|
||||||
+ dirname, process, localGlobal, localBuffer]);
|
+ dirname, process, localGlobal, localBuffer]);
|
||||||
}
|
}
|
||||||
|
this[kIsExecuting] = false;
|
||||||
if (requireDepth === 0) { statCache = null; }
|
if (requireDepth === 0) { statCache = null; }
|
||||||
return result;
|
|
||||||
|
|
|
@ -22,10 +22,10 @@ index 12262f40ce123440a9a0f974386cfbe8511f4459..f3c15b61d33bdae44de528e106fcc6f9
|
||||||
const binding = internalBinding('builtins');
|
const binding = internalBinding('builtins');
|
||||||
|
|
||||||
diff --git a/lib/internal/modules/cjs/loader.js b/lib/internal/modules/cjs/loader.js
|
diff --git a/lib/internal/modules/cjs/loader.js b/lib/internal/modules/cjs/loader.js
|
||||||
index 276ab42c22b796ee07ce66744187adca6a8b8da4..155485dbab0d46bb225fa40e99f555d805659c4f 100644
|
index c794751ecd4448119ce33d661e694f83b3323f03..364469160af5e348f8890417de16a63c0d1dca67 100644
|
||||||
--- a/lib/internal/modules/cjs/loader.js
|
--- a/lib/internal/modules/cjs/loader.js
|
||||||
+++ b/lib/internal/modules/cjs/loader.js
|
+++ b/lib/internal/modules/cjs/loader.js
|
||||||
@@ -102,7 +102,7 @@ const {
|
@@ -138,7 +138,7 @@ const {
|
||||||
const assert = require('internal/assert');
|
const assert = require('internal/assert');
|
||||||
const fs = require('fs');
|
const fs = require('fs');
|
||||||
const path = require('path');
|
const path = require('path');
|
||||||
|
@ -34,7 +34,7 @@ index 276ab42c22b796ee07ce66744187adca6a8b8da4..155485dbab0d46bb225fa40e99f555d8
|
||||||
const { safeGetenv } = internalBinding('credentials');
|
const { safeGetenv } = internalBinding('credentials');
|
||||||
const {
|
const {
|
||||||
privateSymbols: {
|
privateSymbols: {
|
||||||
@@ -196,7 +196,7 @@ function stat(filename) {
|
@@ -233,7 +233,7 @@ function stat(filename) {
|
||||||
const result = statCache.get(filename);
|
const result = statCache.get(filename);
|
||||||
if (result !== undefined) { return result; }
|
if (result !== undefined) { return result; }
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,27 @@
|
||||||
|
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||||
|
From: =?UTF-8?q?Micha=C3=ABl=20Zasso?= <targos@protonmail.com>
|
||||||
|
Date: Mon, 11 Mar 2024 09:27:11 +0000
|
||||||
|
Subject: src: use supported API to get stalled TLA messages
|
||||||
|
|
||||||
|
Refs: https://github.com/v8/v8/commit/23e3b6f650162ed2b332e55aa802adb8f41b50f2
|
||||||
|
|
||||||
|
diff --git a/src/module_wrap.cc b/src/module_wrap.cc
|
||||||
|
index 9bbb8ab908d8d992abb43254860d51f57f56387b..92edfc6fc6401edd3685a0137eac25d9e37566f6 100644
|
||||||
|
--- a/src/module_wrap.cc
|
||||||
|
+++ b/src/module_wrap.cc
|
||||||
|
@@ -587,11 +587,10 @@ void ModuleWrap::EvaluateSync(const FunctionCallbackInfo<Value>& args) {
|
||||||
|
|
||||||
|
if (module->IsGraphAsync()) {
|
||||||
|
CHECK(env->options()->print_required_tla);
|
||||||
|
- auto stalled = module->GetStalledTopLevelAwaitMessage(isolate);
|
||||||
|
- if (stalled.size() != 0) {
|
||||||
|
- for (auto pair : stalled) {
|
||||||
|
- Local<v8::Message> message = std::get<1>(pair);
|
||||||
|
-
|
||||||
|
+ auto stalled_messages =
|
||||||
|
+ std::get<1>(module->GetStalledTopLevelAwaitMessages(isolate));
|
||||||
|
+ if (stalled_messages.size() != 0) {
|
||||||
|
+ for (auto& message : stalled_messages) {
|
||||||
|
std::string reason = "Error: unexpected top-level await at ";
|
||||||
|
std::string info =
|
||||||
|
FormatErrorMessage(isolate, context, "", message, true);
|
|
@ -7,7 +7,7 @@ This refactors several allocators to allocate within the V8 memory cage,
|
||||||
allowing them to be compatible with the V8_SANDBOXED_POINTERS feature.
|
allowing them to be compatible with the V8_SANDBOXED_POINTERS feature.
|
||||||
|
|
||||||
diff --git a/src/api/environment.cc b/src/api/environment.cc
|
diff --git a/src/api/environment.cc b/src/api/environment.cc
|
||||||
index 12414204361e7227f7f7736a07388ade3f093e00..f9d29f0065b1de63a62cfdce74a9705c22dd87d7 100644
|
index 60be2353cf0e77287dfda965c820cf36655a7ce5..fe41619f45913fe31a59771c8d1af6cde3b89f66 100644
|
||||||
--- a/src/api/environment.cc
|
--- a/src/api/environment.cc
|
||||||
+++ b/src/api/environment.cc
|
+++ b/src/api/environment.cc
|
||||||
@@ -101,6 +101,14 @@ MaybeLocal<Value> PrepareStackTraceCallback(Local<Context> context,
|
@@ -101,6 +101,14 @@ MaybeLocal<Value> PrepareStackTraceCallback(Local<Context> context,
|
||||||
|
@ -26,7 +26,7 @@ index 12414204361e7227f7f7736a07388ade3f093e00..f9d29f0065b1de63a62cfdce74a9705c
|
||||||
void* ret;
|
void* ret;
|
||||||
if (zero_fill_field_ || per_process::cli_options->zero_fill_all_buffers)
|
if (zero_fill_field_ || per_process::cli_options->zero_fill_all_buffers)
|
||||||
diff --git a/src/crypto/crypto_util.cc b/src/crypto/crypto_util.cc
|
diff --git a/src/crypto/crypto_util.cc b/src/crypto/crypto_util.cc
|
||||||
index 3034b114e081e2b32dd5b71653927a41af7d48df..49b0175c219d75dd3a038687f353b2428fbdf62b 100644
|
index 63d971e1fe6b861e29c12f04563701b01fdfb976..f39652a6f5196531cd78ce74e91076b1b9e970ca 100644
|
||||||
--- a/src/crypto/crypto_util.cc
|
--- a/src/crypto/crypto_util.cc
|
||||||
+++ b/src/crypto/crypto_util.cc
|
+++ b/src/crypto/crypto_util.cc
|
||||||
@@ -348,10 +348,35 @@ ByteSource& ByteSource::operator=(ByteSource&& other) noexcept {
|
@@ -348,10 +348,35 @@ ByteSource& ByteSource::operator=(ByteSource&& other) noexcept {
|
||||||
|
@ -79,7 +79,7 @@ index 3034b114e081e2b32dd5b71653927a41af7d48df..49b0175c219d75dd3a038687f353b242
|
||||||
return ArrayBuffer::New(env->isolate(), std::move(store));
|
return ArrayBuffer::New(env->isolate(), std::move(store));
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -702,6 +728,16 @@ namespace {
|
@@ -703,6 +729,16 @@ namespace {
|
||||||
// in which case this has the same semantics as
|
// in which case this has the same semantics as
|
||||||
// using OPENSSL_malloc. However, if the secure heap is
|
// using OPENSSL_malloc. However, if the secure heap is
|
||||||
// initialized, SecureBuffer will automatically use it.
|
// initialized, SecureBuffer will automatically use it.
|
||||||
|
@ -96,7 +96,7 @@ index 3034b114e081e2b32dd5b71653927a41af7d48df..49b0175c219d75dd3a038687f353b242
|
||||||
void SecureBuffer(const FunctionCallbackInfo<Value>& args) {
|
void SecureBuffer(const FunctionCallbackInfo<Value>& args) {
|
||||||
CHECK(args[0]->IsUint32());
|
CHECK(args[0]->IsUint32());
|
||||||
Environment* env = Environment::GetCurrent(args);
|
Environment* env = Environment::GetCurrent(args);
|
||||||
@@ -723,6 +759,7 @@ void SecureBuffer(const FunctionCallbackInfo<Value>& args) {
|
@@ -724,6 +760,7 @@ void SecureBuffer(const FunctionCallbackInfo<Value>& args) {
|
||||||
Local<ArrayBuffer> buffer = ArrayBuffer::New(env->isolate(), store);
|
Local<ArrayBuffer> buffer = ArrayBuffer::New(env->isolate(), store);
|
||||||
args.GetReturnValue().Set(Uint8Array::New(buffer, 0, len));
|
args.GetReturnValue().Set(Uint8Array::New(buffer, 0, len));
|
||||||
}
|
}
|
||||||
|
@ -131,7 +131,7 @@ index d45325954d980724f80d49298bbe837197237a9b..ccea18080142bd9cba3765dbbec61c2a
|
||||||
return ret;
|
return ret;
|
||||||
|
|
||||||
diff --git a/src/node_internals.h b/src/node_internals.h
|
diff --git a/src/node_internals.h b/src/node_internals.h
|
||||||
index 5f0adcf8aaba93f8fc2874b863acfc96e30cb2b7..6b4ec38bd092358a9433a1179dbe1e71f56aa387 100644
|
index e04fadd7f83e52fe965d8c73916a56f60425ba3d..5dff80ee287256ba40bfa496df6db60a18fbb9d7 100644
|
||||||
--- a/src/node_internals.h
|
--- a/src/node_internals.h
|
||||||
+++ b/src/node_internals.h
|
+++ b/src/node_internals.h
|
||||||
@@ -118,7 +118,9 @@ v8::Maybe<bool> InitializePrimordials(v8::Local<v8::Context> context);
|
@@ -118,7 +118,9 @@ v8::Maybe<bool> InitializePrimordials(v8::Local<v8::Context> context);
|
||||||
|
@ -145,7 +145,7 @@ index 5f0adcf8aaba93f8fc2874b863acfc96e30cb2b7..6b4ec38bd092358a9433a1179dbe1e71
|
||||||
|
|
||||||
void* Allocate(size_t size) override; // Defined in src/node.cc
|
void* Allocate(size_t size) override; // Defined in src/node.cc
|
||||||
void* AllocateUninitialized(size_t size) override;
|
void* AllocateUninitialized(size_t size) override;
|
||||||
@@ -137,7 +139,7 @@ class NodeArrayBufferAllocator : public ArrayBufferAllocator {
|
@@ -136,7 +138,7 @@ class NodeArrayBufferAllocator : public ArrayBufferAllocator {
|
||||||
}
|
}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
@ -237,3 +237,37 @@ index 6698a1df81cb4e0947c86fb30c2d77fca8e2d9d1..dad297652b347819805b09fbfd869f1d
|
||||||
|
|
||||||
if (!buf.IsEmpty()) {
|
if (!buf.IsEmpty()) {
|
||||||
args.GetReturnValue().Set(buf.ToLocalChecked());
|
args.GetReturnValue().Set(buf.ToLocalChecked());
|
||||||
|
diff --git a/src/node_trace_events.cc b/src/node_trace_events.cc
|
||||||
|
index c4960ee1427e3b29b873135a815a7a09bedcfb73..2c6d8cdeb37f7dce9f29b8f3b260036ae23e6fb5 100644
|
||||||
|
--- a/src/node_trace_events.cc
|
||||||
|
+++ b/src/node_trace_events.cc
|
||||||
|
@@ -132,12 +132,28 @@ static void GetCategoryEnabledBuffer(const FunctionCallbackInfo<Value>& args) {
|
||||||
|
const uint8_t* enabled_pointer =
|
||||||
|
TRACE_EVENT_API_GET_CATEGORY_GROUP_ENABLED(category_name.out());
|
||||||
|
uint8_t* enabled_pointer_cast = const_cast<uint8_t*>(enabled_pointer);
|
||||||
|
+ uint8_t size = sizeof(*enabled_pointer_cast);
|
||||||
|
|
||||||
|
+#if defined(V8_ENABLE_SANDBOX)
|
||||||
|
+ std::unique_ptr<ArrayBuffer::Allocator> allocator(ArrayBuffer::Allocator::NewDefaultAllocator());
|
||||||
|
+ void* v8_data = allocator->Allocate(size);
|
||||||
|
+ CHECK(v8_data);
|
||||||
|
+ memcpy(v8_data, enabled_pointer_cast, size);
|
||||||
|
+ std::unique_ptr<BackingStore> bs = ArrayBuffer::NewBackingStore(
|
||||||
|
+ v8_data,
|
||||||
|
+ size,
|
||||||
|
+ [](void* data, size_t length, void*) {
|
||||||
|
+ std::unique_ptr<ArrayBuffer::Allocator> allocator(ArrayBuffer::Allocator::NewDefaultAllocator());
|
||||||
|
+ allocator->Free(data, length);
|
||||||
|
+ }, nullptr);
|
||||||
|
+#else
|
||||||
|
std::unique_ptr<BackingStore> bs = ArrayBuffer::NewBackingStore(
|
||||||
|
enabled_pointer_cast,
|
||||||
|
- sizeof(*enabled_pointer_cast),
|
||||||
|
+ size,
|
||||||
|
[](void*, size_t, void*) {},
|
||||||
|
nullptr);
|
||||||
|
+#endif
|
||||||
|
+
|
||||||
|
auto ab = ArrayBuffer::New(isolate, std::move(bs));
|
||||||
|
v8::Local<Uint8Array> u8 = v8::Uint8Array::New(ab, 0, 1);
|
||||||
|
|
||||||
|
|
|
@ -7,7 +7,7 @@ Instead of disabling the tests, flag them as flaky so they still run
|
||||||
but don't cause CI failures on flakes.
|
but don't cause CI failures on flakes.
|
||||||
|
|
||||||
diff --git a/test/parallel/parallel.status b/test/parallel/parallel.status
|
diff --git a/test/parallel/parallel.status b/test/parallel/parallel.status
|
||||||
index c2b988f9b2f76940c1c6b05af13898ba2062ba72..d45260cee87349cc8642d814dd11b904bdcf3762 100644
|
index 28f25e4be7e3104894e53a22e50f5474e0b7bc76..2525b094e1eb936d311a0b57fc9579df360883d6 100644
|
||||||
--- a/test/parallel/parallel.status
|
--- a/test/parallel/parallel.status
|
||||||
+++ b/test/parallel/parallel.status
|
+++ b/test/parallel/parallel.status
|
||||||
@@ -5,6 +5,16 @@ prefix parallel
|
@@ -5,6 +5,16 @@ prefix parallel
|
||||||
|
|
|
@ -1,34 +0,0 @@
|
||||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Keeley Hammond <khammond@slack-corp.com>
|
|
||||||
Date: Thu, 25 Jul 2024 15:26:37 -0700
|
|
||||||
Subject: windows 32bit: config change callback needs to be stdcall
|
|
||||||
|
|
||||||
Patch of upstream fix: https://github.com/c-ares/c-ares/commit/8f265c9d5109e5665136396d347c0a93ea78999e
|
|
||||||
|
|
||||||
diff --git a/deps/cares/src/lib/ares_event_configchg.c b/deps/cares/src/lib/ares_event_configchg.c
|
|
||||||
index b7c5ad8c75b6218cf36283fb6d0f8cd702224b87..c9b39f7b3358f37e61fb95e440695a9b590c2090 100644
|
|
||||||
--- a/deps/cares/src/lib/ares_event_configchg.c
|
|
||||||
+++ b/deps/cares/src/lib/ares_event_configchg.c
|
|
||||||
@@ -239,9 +239,10 @@ void ares_event_configchg_destroy(ares_event_configchg_t *configchg)
|
|
||||||
|
|
||||||
|
|
||||||
# ifndef __WATCOMC__
|
|
||||||
-static void ares_event_configchg_ip_cb(PVOID CallerContext,
|
|
||||||
- PMIB_IPINTERFACE_ROW Row,
|
|
||||||
- MIB_NOTIFICATION_TYPE NotificationType)
|
|
||||||
+static void NETIOAPI_API_
|
|
||||||
+ ares_event_configchg_ip_cb(PVOID CallerContext,
|
|
||||||
+ PMIB_IPINTERFACE_ROW Row,
|
|
||||||
+ MIB_NOTIFICATION_TYPE NotificationType)
|
|
||||||
{
|
|
||||||
ares_event_configchg_t *configchg = CallerContext;
|
|
||||||
(void)Row;
|
|
||||||
@@ -308,7 +309,7 @@ ares_status_t ares_event_configchg_init(ares_event_configchg_t **configchg,
|
|
||||||
* that didn't get triggered either.
|
|
||||||
*/
|
|
||||||
if (NotifyIpInterfaceChange(
|
|
||||||
- AF_UNSPEC, (PIPINTERFACE_CHANGE_CALLBACK)ares_event_configchg_ip_cb,
|
|
||||||
+ AF_UNSPEC, ares_event_configchg_ip_cb,
|
|
||||||
*configchg, FALSE, &c->ifchg_hnd) != NO_ERROR) {
|
|
||||||
status = ARES_ESERVFAIL;
|
|
||||||
goto done;
|
|
Loading…
Reference in a new issue