From b8986d840d105a5352c0e1817e13a17c6605b13f Mon Sep 17 00:00:00 2001 From: Shelley Vohr Date: Sun, 5 Nov 2023 18:35:54 -0800 Subject: [PATCH] chore: fixup patch indices --- patches/node/build_add_gn_build_files.patch | 3 +- ...compilation_fails_if_not_using_a_new.patch | 8 +-- ...pression_sandbox_is_enabled_on_64bit.patch | 6 +- ...f_original-fs_and_custom_embedder_js.patch | 5 +- ...t_to_context_aware_module_prevention.patch | 4 +- ...de_entrypoint_to_be_a_builtin_module.patch | 8 +-- ...e_expose_importmoduledynamically_and.patch | 6 +- ...ve_--no-harmony-atomics_related_code.patch | 10 +-- ..._remove_use_of_deprecated_kmaxlength.patch | 4 +- ..._node_tests_set_electron_run_as_node.patch | 4 +- ...enable_crashpad_linux_node_processes.patch | 2 +- .../expose_get_builtin_module_function.patch | 8 +-- ...nalhandler_to_environment_to_prevent.patch | 16 ++--- ...o_change_option_to_uv_loop_configure.patch | 22 +++--- .../node/feat_initialize_asar_support.patch | 6 +- patches/node/fix_-wshadow_warning.patch | 4 +- ...createexternalizablestring_v8_global.patch | 4 +- ..._values_for_variables_in_common_gypi.patch | 2 +- ...ssert_module_in_the_renderer_process.patch | 8 +-- .../fix_crypto_tests_to_run_with_bssl.patch | 68 +++++++++---------- ...n_electron_module_via_the_esm_loader.patch | 20 +++--- ...se_tracing_tracingcontroller_instead.patch | 10 +-- ...ingssl_and_openssl_incompatibilities.patch | 42 ++++++------ ..._possible_disabled_sharedarraybuffer.patch | 4 +- ...g_-wdeprecated-declarations_in_libuv.patch | 4 +- ...st_do_not_hardcode_buffer_kmaxlength.patch | 8 +-- .../pass_all_globals_through_require.patch | 4 +- ...cess_fork_to_use_execute_script_with.patch | 2 +- .../node/support_v8_sandboxed_pointers.patch | 24 +++---- .../test_fix_edge_snapshot_stack_traces.patch | 4 +- ...st_formally_mark_some_tests_as_flaky.patch | 2 +- ...assert_after_spawning_store_app_4152.patch | 10 +-- 32 files changed, 165 insertions(+), 167 deletions(-) diff --git a/patches/node/build_add_gn_build_files.patch b/patches/node/build_add_gn_build_files.patch index 114dcc80ae240..955765eae9670 100644 --- a/patches/node/build_add_gn_build_files.patch +++ b/patches/node/build_add_gn_build_files.patch @@ -7,7 +7,7 @@ This adds GN build files for Node, so we don't have to build with GYP. diff --git a/BUILD.gn b/BUILD.gn new file mode 100644 -index 0000000000000000000000000000000000000000..e2b19b7500b4710e3a55e08f662d989c18272b70 +index 0000000000000000000000000000000000000000..cf4f9b577010ee1e3122bdc1097dfecdfc063b43 --- /dev/null +++ b/BUILD.gn @@ -0,0 +1,358 @@ @@ -2350,4 +2350,3 @@ index 11616e1bcac5308020eb68fdb811bfb86cb14dd5..845e6ce69d93983963a7a57117ecab3b if 'false' == variables.get('node_shared_libuv'): subdir_files('deps/uv/include', 'include/node/', action) - diff --git a/patches/node/build_ensure_native_module_compilation_fails_if_not_using_a_new.patch b/patches/node/build_ensure_native_module_compilation_fails_if_not_using_a_new.patch index 53045a76204a5..a4f21f38be491 100644 --- a/patches/node/build_ensure_native_module_compilation_fails_if_not_using_a_new.patch +++ b/patches/node/build_ensure_native_module_compilation_fails_if_not_using_a_new.patch @@ -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. diff --git a/common.gypi b/common.gypi -index 62cb46b328871d929f16ced2a4741bc6e6b004db..53ab7c255317d2280e2579435bc7097705f19c6e 100644 +index a04a4a4e108862b64725345beaba73ad6f69eb51..f1c36cfd697485564f0fe7998eaf924aa30f140b 100644 --- a/common.gypi +++ b/common.gypi @@ -79,6 +79,8 @@ @@ -40,10 +40,10 @@ index 62cb46b328871d929f16ced2a4741bc6e6b004db..53ab7c255317d2280e2579435bc70977 'defines': [ 'V8_COMPRESS_POINTERS', diff --git a/configure.py b/configure.py -index 875d83e5db0037b902cff03c74852ea347513b03..8776cd057607ffe913bdd822a0aed5f9f1aa4a7a 100755 +index 7b80ec63a082ce93ba81ca6dd41ec03041534ff7..926659883d3bd6d447c89a50d6770988b59d6f88 100755 --- a/configure.py +++ b/configure.py -@@ -1524,6 +1524,7 @@ def configure_library(lib, output, pkgname=None): +@@ -1484,6 +1484,7 @@ def configure_library(lib, output, pkgname=None): def configure_v8(o): @@ -52,7 +52,7 @@ index 875d83e5db0037b902cff03c74852ea347513b03..8776cd057607ffe913bdd822a0aed5f9 o['variables']['v8_enable_javascript_promise_hooks'] = 1 o['variables']['v8_enable_lite_mode'] = 1 if options.v8_lite_mode else 0 diff --git a/src/node.h b/src/node.h -index c4cce244359d893acf31e78f935152d4d47b14cd..26368061a909e6abc62a4cf261a5dbbd79404f1a 100644 +index 99d2e1384df4000d4e1f1ffeafa83d29a152054b..9ac0d5addcdd40d5c91d375b626099b95729548a 100644 --- a/src/node.h +++ b/src/node.h @@ -22,6 +22,12 @@ diff --git a/patches/node/build_ensure_v8_pointer_compression_sandbox_is_enabled_on_64bit.patch b/patches/node/build_ensure_v8_pointer_compression_sandbox_is_enabled_on_64bit.patch index 41b4f2491849a..87a3bf16e8165 100644 --- a/patches/node/build_ensure_v8_pointer_compression_sandbox_is_enabled_on_64bit.patch +++ b/patches/node/build_ensure_v8_pointer_compression_sandbox_is_enabled_on_64bit.patch @@ -8,7 +8,7 @@ Aligns common.gypi with the current build flag state of //v8. Specifically enables `V8_ENABLE_SANDBOX`, `V8_SANDBOXED_POINTERS`, `V8_COMPRESS_POINTERS` and `V8_COMPRESS_POINTERS_IN_SHARED_CAGE`. diff --git a/common.gypi b/common.gypi -index 10d11f1e9aacfbe4bb53e1220afab1e68db98313..62cb46b328871d929f16ced2a4741bc6e6b004db 100644 +index 0b073571cd482d5124123c4490c564f839429b28..a04a4a4e108862b64725345beaba73ad6f69eb51 100644 --- a/common.gypi +++ b/common.gypi @@ -65,6 +65,7 @@ @@ -42,10 +42,10 @@ index 10d11f1e9aacfbe4bb53e1220afab1e68db98313..62cb46b328871d929f16ced2a4741bc6 'defines': ['V8_31BIT_SMIS_ON_64BIT_ARCH'], }], diff --git a/configure.py b/configure.py -index 7006ee65816989976b1648374565ebbae4b188f1..875d83e5db0037b902cff03c74852ea347513b03 100755 +index 62f041ce52bf85136175e733216671e2811a337b..7b80ec63a082ce93ba81ca6dd41ec03041534ff7 100755 --- a/configure.py +++ b/configure.py -@@ -1537,6 +1537,7 @@ def configure_v8(o): +@@ -1497,6 +1497,7 @@ def configure_v8(o): o['variables']['v8_use_siphash'] = 0 if options.without_siphash else 1 o['variables']['v8_enable_pointer_compression'] = 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 diff --git a/patches/node/build_modify_js2c_py_to_allow_injection_of_original-fs_and_custom_embedder_js.patch b/patches/node/build_modify_js2c_py_to_allow_injection_of_original-fs_and_custom_embedder_js.patch index 537943949a9d7..95417603869d1 100644 --- a/patches/node/build_modify_js2c_py_to_allow_injection_of_original-fs_and_custom_embedder_js.patch +++ b/patches/node/build_modify_js2c_py_to_allow_injection_of_original-fs_and_custom_embedder_js.patch @@ -62,7 +62,7 @@ index 9f2fbc1e53937448aa27c1f5fe110eabc7edc0df..ba0c926a7968ec6a4cf07a469f1fd931 std::vector GetBuiltinIds() const; diff --git a/tools/js2c.cc b/tools/js2c.cc -index 904fb6fa44d4f56fb67476e937edcbb797d78fe7..28dc4b59898fb5ac02dc55f930613f7a46a8a66e 100644 +index 904fb6fa44d4f56fb67476e937edcbb797d78fe7..69078f3c2fcaab9f1b22d28c797a7e4cceb0646c 100644 --- a/tools/js2c.cc +++ b/tools/js2c.cc @@ -29,6 +29,7 @@ namespace js2c { @@ -153,7 +153,7 @@ index 904fb6fa44d4f56fb67476e937edcbb797d78fe7..28dc4b59898fb5ac02dc55f930613f7a + // std::equal(prefix.begin(), prefix.end(), toCheck.begin())? + std::string original_fs_filename = filename; + std::replace(original_fs_filename.begin(), original_fs_filename.end(), "internal/fs/", "internal/original-fs/"); -+ ++ + std::function(const std::vector&)> ReadFileTransform = [](const char* path, size_t size, int* error) { + std::vector code = ReadFileSync(path, size, &error); + std::replace(code.begin(), code.end(), "require('fs')", "require('original-fs')"); @@ -243,4 +243,3 @@ index 904fb6fa44d4f56fb67476e937edcbb797d78fe7..28dc4b59898fb5ac02dc55f930613f7a return JS2C(js_it->second, mjs_it->second, gypi_it->second[0], output); } - diff --git a/patches/node/chore_add_context_to_context_aware_module_prevention.patch b/patches/node/chore_add_context_to_context_aware_module_prevention.patch index 49628b8e071ca..9d6e76352044f 100644 --- a/patches/node/chore_add_context_to_context_aware_module_prevention.patch +++ b/patches/node/chore_add_context_to_context_aware_module_prevention.patch @@ -8,7 +8,7 @@ modules from being used in the renderer process. This should be upstreamed as a customizable error message. diff --git a/src/node_binding.cc b/src/node_binding.cc -index a82763cc5ad47f25b63b8c72e08bdc09ab841448..eb25fb4a81f53e2e443d0276bb1acbbf5700533a 100644 +index 8cdee730101fbdc79415654aa6fe401573979c0e..34d5e146ffef255019dd33d8c23b0847d91ddee9 100644 --- a/src/node_binding.cc +++ b/src/node_binding.cc @@ -4,6 +4,7 @@ @@ -19,7 +19,7 @@ index a82763cc5ad47f25b63b8c72e08bdc09ab841448..eb25fb4a81f53e2e443d0276bb1acbbf #include "util.h" #include -@@ -481,7 +482,12 @@ void DLOpen(const FunctionCallbackInfo& args) { +@@ -480,7 +481,12 @@ void DLOpen(const FunctionCallbackInfo& args) { if (mp->nm_context_register_func == nullptr) { if (env->force_context_aware()) { dlib->Close(); diff --git a/patches/node/chore_allow_the_node_entrypoint_to_be_a_builtin_module.patch b/patches/node/chore_allow_the_node_entrypoint_to_be_a_builtin_module.patch index bae1478ffc429..e55ac4ef984cd 100644 --- a/patches/node/chore_allow_the_node_entrypoint_to_be_a_builtin_module.patch +++ b/patches/node/chore_allow_the_node_entrypoint_to_be_a_builtin_module.patch @@ -8,10 +8,10 @@ they use themselves as the entry point. We should try to upstream some form of this. diff --git a/lib/internal/modules/cjs/loader.js b/lib/internal/modules/cjs/loader.js -index 001343b74ce236f89dca030c0fc9dd0299df0b39..6f277daf4ce846f093f634c473daec07939b4558 100644 +index 84fea979d482d3d5cacfad4b09237e6345675cad..678ed0a7b43c30c5dd6102d83f490e23c95090ce 100644 --- a/lib/internal/modules/cjs/loader.js +++ b/lib/internal/modules/cjs/loader.js -@@ -1230,6 +1230,13 @@ Module.prototype._compile = function(content, filename) { +@@ -1215,6 +1215,13 @@ Module.prototype._compile = function(content, filename) { if (getOptionValue('--inspect-brk') && process._eval == null) { if (!resolvedArgv) { // We enter the repl if we're not given a filename argument. @@ -26,10 +26,10 @@ index 001343b74ce236f89dca030c0fc9dd0299df0b39..6f277daf4ce846f093f634c473daec07 try { resolvedArgv = Module._resolveFilename(process.argv[1], null, false); diff --git a/lib/internal/process/pre_execution.js b/lib/internal/process/pre_execution.js -index fcbd9ee1af002bc176937e6bb5af55791b2f64b2..cbfb6e3620a7e77658c86a4730c50661b8a937f7 100644 +index 0dc769846b4e6fe84438cd6d8024c4a89eb90a9b..bff9bdc7ad58183e9eb04ee45b76592b4240952a 100644 --- a/lib/internal/process/pre_execution.js +++ b/lib/internal/process/pre_execution.js -@@ -164,11 +164,13 @@ function patchProcessObject(expandArgv1) { +@@ -204,11 +204,13 @@ function patchProcessObject(expandArgv1) { if (expandArgv1 && process.argv[1] && !StringPrototypeStartsWith(process.argv[1], '-')) { // Expand process.argv[1] into a full path. diff --git a/patches/node/chore_expose_importmoduledynamically_and.patch b/patches/node/chore_expose_importmoduledynamically_and.patch index 88679dc00946e..bec0e123920c5 100644 --- a/patches/node/chore_expose_importmoduledynamically_and.patch +++ b/patches/node/chore_expose_importmoduledynamically_and.patch @@ -31,7 +31,7 @@ index 985784383024450833a8324d45a7af2fe214a09c..524558b6d00969c2b62cd6050fde9de5 function isLoaderWorker() { diff --git a/src/module_wrap.cc b/src/module_wrap.cc -index 0645b3ddf506df2a76f5661f0ec6bb35d5d8b94e..e0f1b2d51f3055b2250f2c0dc1dfd1048b645dd9 100644 +index a1b0f812391486c5a429398326091a30bbe81692..a316d077f2d2ff38564959345cf8ef29a3ac678f 100644 --- a/src/module_wrap.cc +++ b/src/module_wrap.cc @@ -547,7 +547,7 @@ MaybeLocal ModuleWrap::ResolveModuleCallback( @@ -43,7 +43,7 @@ index 0645b3ddf506df2a76f5661f0ec6bb35d5d8b94e..e0f1b2d51f3055b2250f2c0dc1dfd104 Local context, Local host_defined_options, Local resource_name, -@@ -629,12 +629,13 @@ void ModuleWrap::SetImportModuleDynamicallyCallback( +@@ -610,12 +610,13 @@ void ModuleWrap::SetImportModuleDynamicallyCallback( Environment* env = Environment::GetCurrent(args); HandleScope handle_scope(isolate); @@ -59,7 +59,7 @@ index 0645b3ddf506df2a76f5661f0ec6bb35d5d8b94e..e0f1b2d51f3055b2250f2c0dc1dfd104 } void ModuleWrap::HostInitializeImportMetaObjectCallback( -@@ -665,13 +666,14 @@ void ModuleWrap::SetInitializeImportMetaObjectCallback( +@@ -652,13 +653,14 @@ void ModuleWrap::SetInitializeImportMetaObjectCallback( Environment* env = Environment::GetCurrent(args); Isolate* isolate = env->isolate(); diff --git a/patches/node/chore_remove_--no-harmony-atomics_related_code.patch b/patches/node/chore_remove_--no-harmony-atomics_related_code.patch index c57dee0102e69..8041e404a9a27 100644 --- a/patches/node/chore_remove_--no-harmony-atomics_related_code.patch +++ b/patches/node/chore_remove_--no-harmony-atomics_related_code.patch @@ -9,7 +9,7 @@ This patch can be removed when Node.js upgrades to a version of V8 containing the above CL. diff --git a/lib/.eslintrc.yaml b/lib/.eslintrc.yaml -index 3b406703ce9f981411cd9de5379f8574384e170a..bc439ce0aa072a778a22ba860eed35263740a1cd 100644 +index 942d7cc1305eb4cf327de5666551435802f0dbac..991c65215488b9526758b9aca96842ad17fc018e 100644 --- a/lib/.eslintrc.yaml +++ b/lib/.eslintrc.yaml @@ -33,10 +33,6 @@ rules: @@ -24,10 +24,10 @@ index 3b406703ce9f981411cd9de5379f8574384e170a..bc439ce0aa072a778a22ba860eed3526 message: Use `const { Blob } = require('buffer');` instead of the global. - name: BroadcastChannel diff --git a/lib/internal/main/worker_thread.js b/lib/internal/main/worker_thread.js -index 7fbfb64984c290a1d71c99c92084975c31ce18fe..be4d82086199855a10108528b3dacc663b839454 100644 +index 12ae4a9b23212d3f8ff1566a1c2b815a47d3838a..4460042d7bfbb8286a9b2abcbfb9e44f21b5d944 100644 --- a/lib/internal/main/worker_thread.js +++ b/lib/internal/main/worker_thread.js -@@ -108,7 +108,7 @@ port.on('message', (message) => { +@@ -112,7 +112,7 @@ port.on('message', (message) => { require('internal/worker').assignEnvironmentData(environmentData); @@ -37,10 +37,10 @@ index 7fbfb64984c290a1d71c99c92084975c31ce18fe..be4d82086199855a10108528b3dacc66 // not to workers created by other workers. let cachedCwd = ''; diff --git a/lib/internal/worker.js b/lib/internal/worker.js -index 3d828d2f6f2b19554f7fc01ea880c0c144d8837d..78fcaec8d694580798783c83c3282ec1aaac4aa7 100644 +index 401bc43550ea7f19847dfd588e3fba0507243905..560f69c6c2de2bd976bcd62cd7ac9c770b838446 100644 --- a/lib/internal/worker.js +++ b/lib/internal/worker.js -@@ -93,8 +93,7 @@ let cwdCounter; +@@ -101,8 +101,7 @@ let cwdCounter; const environmentData = new SafeMap(); // SharedArrayBuffers can be disabled with --no-harmony-sharedarraybuffer. diff --git a/patches/node/chore_remove_use_of_deprecated_kmaxlength.patch b/patches/node/chore_remove_use_of_deprecated_kmaxlength.patch index 79c52f5b803f3..27708f7c6889d 100644 --- a/patches/node/chore_remove_use_of_deprecated_kmaxlength.patch +++ b/patches/node/chore_remove_use_of_deprecated_kmaxlength.patch @@ -21,10 +21,10 @@ index 606a6f5caa3b11b6d2a9068ed2fd65800530a5eb..080dcce21da05ccea398d8a856deb397 typedef void (*FreeCallback)(char* data, void* hint); diff --git a/src/node_errors.h b/src/node_errors.h -index 1687eed35717ae385aedad952c03ebab4f0f3bf7..4cd96bf9dd721ec24dd5f23086da5b72be58d0a9 100644 +index 569dafe82df83db02d93b0e58231ef804eb54be8..c6b8c3b5b36ea25a31bdf3c6a48ef20f3c1b6577 100644 --- a/src/node_errors.h +++ b/src/node_errors.h -@@ -208,7 +208,7 @@ inline v8::Local ERR_BUFFER_TOO_LARGE(v8::Isolate* isolate) { +@@ -218,7 +218,7 @@ inline v8::Local ERR_BUFFER_TOO_LARGE(v8::Isolate* isolate) { char message[128]; snprintf(message, sizeof(message), "Cannot create a Buffer larger than 0x%zx bytes", diff --git a/patches/node/ci_ensure_node_tests_set_electron_run_as_node.patch b/patches/node/ci_ensure_node_tests_set_electron_run_as_node.patch index 9ad1fed55173b..b635642c41561 100644 --- a/patches/node/ci_ensure_node_tests_set_electron_run_as_node.patch +++ b/patches/node/ci_ensure_node_tests_set_electron_run_as_node.patch @@ -8,10 +8,10 @@ which causes the `ELECTRON_RUN_AS_NODE` variable to be lost. This patch re-injects it. diff --git a/test/common/assertSnapshot.js b/test/common/assertSnapshot.js -index c403751ac3ef5e39e7c0b1a1a8fb704ebf843dd7..83ee45f5f906adddcbc701112f373332dd1f66f9 100644 +index 0bd0fc18534f8b3106b79a010dfc4ffe0ab17ec3..838ee86f74ea89e052676a5c25e23481369857fa 100644 --- a/test/common/assertSnapshot.js +++ b/test/common/assertSnapshot.js -@@ -62,6 +62,7 @@ async function spawnAndAssert(filename, transform = (x) => x, { tty = false, ... +@@ -76,6 +76,7 @@ async function spawnAndAssert(filename, transform = (x) => x, { tty = false, ... const flags = common.parseTestFlags(filename); const executable = tty ? 'tools/pseudo-tty.py' : process.execPath; const args = tty ? [process.execPath, ...flags, filename] : [...flags, filename]; diff --git a/patches/node/enable_crashpad_linux_node_processes.patch b/patches/node/enable_crashpad_linux_node_processes.patch index 9508ec2670f40..16276e457b45f 100644 --- a/patches/node/enable_crashpad_linux_node_processes.patch +++ b/patches/node/enable_crashpad_linux_node_processes.patch @@ -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. diff --git a/lib/child_process.js b/lib/child_process.js -index ec39a00ddb791e6e1ebe31aa45d290e7dcc4ebfc..1cd5d8969471b276211c45a9d8d76e9b10b1bb66 100644 +index 9dd33ecbac3a5d516f9bff76fdbe1a8aece531f2..0464ecc7b53389cdff97a7fe4cb01582e8b72dbb 100644 --- a/lib/child_process.js +++ b/lib/child_process.js @@ -61,6 +61,7 @@ let debug = require('internal/util/debuglog').debuglog( diff --git a/patches/node/expose_get_builtin_module_function.patch b/patches/node/expose_get_builtin_module_function.patch index 7059546cc8323..0c30f6f1aa801 100644 --- a/patches/node/expose_get_builtin_module_function.patch +++ b/patches/node/expose_get_builtin_module_function.patch @@ -9,10 +9,10 @@ modules to sandboxed renderers. TODO(codebytere): remove and replace with a public facing API. diff --git a/src/node_binding.cc b/src/node_binding.cc -index 259ce86b4c443c960dae6cb1c9d6c62b9ff23b30..a82763cc5ad47f25b63b8c72e08bdc09ab841448 100644 +index 97257d47c6173872e55facf6f92801bd2fc3564b..8cdee730101fbdc79415654aa6fe401573979c0e 100644 --- a/src/node_binding.cc +++ b/src/node_binding.cc -@@ -620,6 +620,10 @@ void GetInternalBinding(const FunctionCallbackInfo& args) { +@@ -638,6 +638,10 @@ void GetInternalBinding(const FunctionCallbackInfo& args) { args.GetReturnValue().Set(exports); } @@ -24,10 +24,10 @@ index 259ce86b4c443c960dae6cb1c9d6c62b9ff23b30..a82763cc5ad47f25b63b8c72e08bdc09 Environment* env = Environment::GetCurrent(args); diff --git a/src/node_binding.h b/src/node_binding.h -index 32106afb0b7260b297c0e1a94527e03ed6039ee0..62a7473f64a618bb631b08cd5a32a1bcaa296aa8 100644 +index 9f0692ca4e190bde251d4825aa9abac3d66b6ac6..f4024a05901f72f85e097a8ab6ddbd5812e9ba16 100644 --- a/src/node_binding.h +++ b/src/node_binding.h -@@ -98,6 +98,8 @@ void GetInternalBinding(const v8::FunctionCallbackInfo& args); +@@ -134,6 +134,8 @@ void GetInternalBinding(const v8::FunctionCallbackInfo& args); void GetLinkedBinding(const v8::FunctionCallbackInfo& args); void DLOpen(const v8::FunctionCallbackInfo& args); diff --git a/patches/node/feat_add_knostartdebugsignalhandler_to_environment_to_prevent.patch b/patches/node/feat_add_knostartdebugsignalhandler_to_environment_to_prevent.patch index c31372a803b5e..e20b47dba6cf1 100644 --- a/patches/node/feat_add_knostartdebugsignalhandler_to_environment_to_prevent.patch +++ b/patches/node/feat_add_knostartdebugsignalhandler_to_environment_to_prevent.patch @@ -7,10 +7,10 @@ Subject: feat: add kNoStartDebugSignalHandler to Environment to prevent This patch should be upstreamed, it allows embedders to prevent the call to StartDebugSignalHandler which handles SIGUSR1 and starts the inspector agent. Apps that have --inspect disabled also don't want SIGUSR1 to have this affect. diff --git a/src/env-inl.h b/src/env-inl.h -index 7ceab0da0c632f857f6e2d0fbf479bbc4f55df07..debd982c75805c51ea7d01229b9d635550060503 100644 +index 793dc72e0dbad819a1c3a51521b4a39b76c7015d..222c78ef0cb9904742fd44f8182278ab1f50cd59 100644 --- a/src/env-inl.h +++ b/src/env-inl.h -@@ -627,6 +627,10 @@ inline bool Environment::no_global_search_paths() const { +@@ -677,6 +677,10 @@ inline bool Environment::no_global_search_paths() const { !options_->global_search_paths; } @@ -22,10 +22,10 @@ index 7ceab0da0c632f857f6e2d0fbf479bbc4f55df07..debd982c75805c51ea7d01229b9d6355 // configure --no-browser-globals #ifdef NODE_NO_BROWSER_GLOBALS diff --git a/src/env.h b/src/env.h -index b67a476701f9bd8abdfc0ef9cfe800e84fb8f8c2..45a9a7811b4abe1effb6acf2c89a772a7c2256c9 100644 +index afe67d2237ae6933de44dd1141cf388e9a48cee3..87df6e1f32e584aa0c6ae21856299fff31d67669 100644 --- a/src/env.h +++ b/src/env.h -@@ -748,6 +748,7 @@ class Environment : public MemoryRetainer { +@@ -787,6 +787,7 @@ class Environment : public MemoryRetainer { inline bool tracks_unmanaged_fds() const; inline bool hide_console_windows() const; inline bool no_global_search_paths() const; @@ -34,10 +34,10 @@ index b67a476701f9bd8abdfc0ef9cfe800e84fb8f8c2..45a9a7811b4abe1effb6acf2c89a772a inline uint64_t thread_id() const; inline worker::Worker* worker_context() const; diff --git a/src/inspector_agent.cc b/src/inspector_agent.cc -index b1ba86b7b0b2349f771e01143630e45cf0aecc3b..4c9f7f636aeeb19a87150ac5a05e28159503f051 100644 +index f0b4cc43c864aee1fab8e073ea110ea108c653ab..6d12e27b955fb9fddab24d846e563c969bb48ae7 100644 --- a/src/inspector_agent.cc +++ b/src/inspector_agent.cc -@@ -703,8 +703,10 @@ bool Agent::Start(const std::string& path, +@@ -707,8 +707,10 @@ bool Agent::Start(const std::string& path, StartIoThreadAsyncCallback)); uv_unref(reinterpret_cast(&start_io_thread_async)); start_io_thread_async.data = this; @@ -51,10 +51,10 @@ index b1ba86b7b0b2349f771e01143630e45cf0aecc3b..4c9f7f636aeeb19a87150ac5a05e2815 parent_env_->AddCleanupHook([](void* data) { Environment* env = static_cast(data); diff --git a/src/node.h b/src/node.h -index b50bd5a941d381778d464fdb2770566a3ac34fed..c4cce244359d893acf31e78f935152d4d47b14cd 100644 +index dcce529664e1d126115545d6ba7f5b8492b0e921..99d2e1384df4000d4e1f1ffeafa83d29a152054b 100644 --- a/src/node.h +++ b/src/node.h -@@ -575,7 +575,11 @@ enum Flags : uint64_t { +@@ -654,7 +654,11 @@ enum Flags : uint64_t { // This control is needed by embedders who may not want to initialize the V8 // inspector in situations where one has already been created, // e.g. Blink's in Chromium. diff --git a/patches/node/feat_add_uv_loop_interrupt_on_io_change_option_to_uv_loop_configure.patch b/patches/node/feat_add_uv_loop_interrupt_on_io_change_option_to_uv_loop_configure.patch index d17a2b3c3a06b..a1b2774b5c192 100644 --- a/patches/node/feat_add_uv_loop_interrupt_on_io_change_option_to_uv_loop_configure.patch +++ b/patches/node/feat_add_uv_loop_interrupt_on_io_change_option_to_uv_loop_configure.patch @@ -26,10 +26,10 @@ index 0f5ddfb3ca21b7e5b38d0a4ce4b9e77387597199..ba815202fb157aa82859ec0518523cf6 .. c:function:: int uv_loop_close(uv_loop_t* loop) diff --git a/deps/uv/include/uv.h b/deps/uv/include/uv.h -index ee1c94ccd389915ea7572cce044256a7788025ad..d31abf714d5d1433ec8473ccb1aae3b6615c477a 100644 +index 02397dd0fdd43d51f86c0dde9a62046702f12bdb..3375600023e39ddacf62cc17deb4f206db942084 100644 --- a/deps/uv/include/uv.h +++ b/deps/uv/include/uv.h -@@ -252,7 +252,8 @@ typedef struct uv_statfs_s uv_statfs_t; +@@ -260,7 +260,8 @@ typedef struct uv_metrics_s uv_metrics_t; typedef enum { UV_LOOP_BLOCK_SIGNAL = 0, @@ -135,7 +135,7 @@ index 25c5181f370e94983e8a5f797f02f7a8dc207e00..f4d9059796d2c65339a5d48ecb273b09 diff --git a/deps/uv/src/unix/loop.c b/deps/uv/src/unix/loop.c -index a88e71c339351f2ebcdd6c3f933fc3b1122910ed..46fc03264b6cc1a3a4d8faf5ec5a754fc07c9b6d 100644 +index a9468e8e19cbede795032980c47eb83aee1e0c68..2d28cf48efc3718de19b901b7e08b8a857d20740 100644 --- a/deps/uv/src/unix/loop.c +++ b/deps/uv/src/unix/loop.c @@ -217,6 +217,11 @@ int uv__loop_configure(uv_loop_t* loop, uv_loop_option option, va_list ap) { @@ -192,10 +192,10 @@ index a88e71c339351f2ebcdd6c3f933fc3b1122910ed..46fc03264b6cc1a3a4d8faf5ec5a754f + abort(); +} diff --git a/deps/uv/src/uv-common.h b/deps/uv/src/uv-common.h -index 6001b0cf68d0b0268b578218b664a737f43c9521..5d2212571f4bcb648ab332f0c5650d0fdb37c03a 100644 +index cd57e5a35153d0557351b60cce0c5be7a4468b60..660caef30b1637b8009de5e55ee34f48d17e4dd0 100644 --- a/deps/uv/src/uv-common.h +++ b/deps/uv/src/uv-common.h -@@ -140,6 +140,8 @@ int uv__loop_configure(uv_loop_t* loop, uv_loop_option option, va_list ap); +@@ -144,6 +144,8 @@ int uv__loop_configure(uv_loop_t* loop, uv_loop_option option, va_list ap); void uv__loop_close(uv_loop_t* loop); @@ -204,7 +204,7 @@ index 6001b0cf68d0b0268b578218b664a737f43c9521..5d2212571f4bcb648ab332f0c5650d0f int uv__read_start(uv_stream_t* stream, uv_alloc_cb alloc_cb, uv_read_cb read_cb); -@@ -268,6 +270,10 @@ void uv__threadpool_cleanup(void); +@@ -280,6 +282,10 @@ void uv__threadpool_cleanup(void); if (((h)->flags & UV_HANDLE_ACTIVE) != 0) break; \ (h)->flags |= UV_HANDLE_ACTIVE; \ if (((h)->flags & UV_HANDLE_REF) != 0) uv__active_handle_add(h); \ @@ -216,7 +216,7 @@ index 6001b0cf68d0b0268b578218b664a737f43c9521..5d2212571f4bcb648ab332f0c5650d0f while (0) diff --git a/deps/uv/src/win/core.c b/deps/uv/src/win/core.c -index 67af93e6571ed4324d80b6dfb2ff93db7b9cd9b1..e88008b6a288d1508c5c117d814000d63cab81c3 100644 +index e9885a0f1ff3890a8d957c8793e22b01cedc0e97..ae3d09878253fe7169ad7b74b3faea0223f89de5 100644 --- a/deps/uv/src/win/core.c +++ b/deps/uv/src/win/core.c @@ -384,10 +384,20 @@ int uv__loop_configure(uv_loop_t* loop, uv_loop_option option, va_list ap) { @@ -241,7 +241,7 @@ index 67af93e6571ed4324d80b6dfb2ff93db7b9cd9b1..e88008b6a288d1508c5c117d814000d6 return -1; } diff --git a/deps/uv/test/test-embed.c b/deps/uv/test/test-embed.c -index 1d3355fdc67310feb63738c9e30724f0e77f7895..77a63dbb4d188b2ad571c814dbc6cbc6fe5fa205 100644 +index bbe56e176db17a502d7f3864ba529212f553590a..b0da9d1cddc69428e9fb3379d1338cf893ab93d2 100644 --- a/deps/uv/test/test-embed.c +++ b/deps/uv/test/test-embed.c @@ -25,54 +25,184 @@ @@ -465,10 +465,10 @@ index 1d3355fdc67310feb63738c9e30724f0e77f7895..77a63dbb4d188b2ad571c814dbc6cbc6 MAKE_VALGRIND_HAPPY(loop); return 0; diff --git a/deps/uv/test/test-list.h b/deps/uv/test/test-list.h -index b19c10c7e40c77061337416fd623c53d0863d276..1f54ac21c36902bccb35c64cefa8bb14dd675bb0 100644 +index 78ff9c2d1621676feab5d357609970cdf1ba5864..204160f324ad1a80c9b042e62c4bedcb745666ba 100644 --- a/deps/uv/test/test-list.h +++ b/deps/uv/test/test-list.h -@@ -265,6 +265,7 @@ TEST_DECLARE (process_priority) +@@ -273,6 +273,7 @@ TEST_DECLARE (process_priority) TEST_DECLARE (has_ref) TEST_DECLARE (active) TEST_DECLARE (embed) @@ -476,7 +476,7 @@ index b19c10c7e40c77061337416fd623c53d0863d276..1f54ac21c36902bccb35c64cefa8bb14 TEST_DECLARE (async) TEST_DECLARE (async_null_cb) TEST_DECLARE (eintr_handling) -@@ -867,6 +868,7 @@ TASK_LIST_START +@@ -894,6 +895,7 @@ TASK_LIST_START TEST_ENTRY (active) TEST_ENTRY (embed) diff --git a/patches/node/feat_initialize_asar_support.patch b/patches/node/feat_initialize_asar_support.patch index f56213c5a501b..f5e780bbcf6a4 100644 --- a/patches/node/feat_initialize_asar_support.patch +++ b/patches/node/feat_initialize_asar_support.patch @@ -6,10 +6,10 @@ Subject: feat: initialize asar support This patch initializes asar support in Node.js. diff --git a/lib/internal/process/pre_execution.js b/lib/internal/process/pre_execution.js -index b4a24bbffb6c43638d13063e85b6cfba5c0cc9c7..fcbd9ee1af002bc176937e6bb5af55791b2f64b2 100644 +index 1f4a08515b5ae9e15ee987d9287f71b0fed3cb30..0dc769846b4e6fe84438cd6d8024c4a89eb90a9b 100644 --- a/lib/internal/process/pre_execution.js +++ b/lib/internal/process/pre_execution.js -@@ -52,6 +52,8 @@ function prepareWorkerThreadExecution() { +@@ -67,6 +67,8 @@ function prepareWorkerThreadExecution() { }); } @@ -18,7 +18,7 @@ index b4a24bbffb6c43638d13063e85b6cfba5c0cc9c7..fcbd9ee1af002bc176937e6bb5af5579 function prepareExecution(options) { const { expandArgv1, initializeModules, isMainThread } = options; -@@ -130,12 +132,17 @@ function setupUserModules() { +@@ -170,12 +172,17 @@ function setupUserModules(isLoaderWorker = false) { loadPreloadModules(); // Need to be done after --require setup. initializeFrozenIntrinsics(); diff --git a/patches/node/fix_-wshadow_warning.patch b/patches/node/fix_-wshadow_warning.patch index 01677fb3c773f..56232487840d7 100644 --- a/patches/node/fix_-wshadow_warning.patch +++ b/patches/node/fix_-wshadow_warning.patch @@ -28,10 +28,10 @@ In file included from ../../third_party/electron_node/src/env-inl.h:32: 1 error generated. diff --git a/src/util.h b/src/util.h -index e218d9b62a1eb52404e3a57b999784e8e2f5ad58..22f2272c1bd4363be10a552748f63cbffba5c66d 100644 +index 344f7753dab2b16bc38ff808d29c031a363aaaf2..947c2c19a22f7bf8a9d82667a85a18f9252e6d65 100644 --- a/src/util.h +++ b/src/util.h -@@ -129,10 +129,10 @@ void DumpBacktrace(FILE* fp); +@@ -130,10 +130,10 @@ void DumpBacktrace(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. */ \ diff --git a/patches/node/fix_account_for_createexternalizablestring_v8_global.patch b/patches/node/fix_account_for_createexternalizablestring_v8_global.patch index 2ef0bdb9a46ba..d0dc5f5e721c8 100644 --- a/patches/node/fix_account_for_createexternalizablestring_v8_global.patch +++ b/patches/node/fix_account_for_createexternalizablestring_v8_global.patch @@ -9,10 +9,10 @@ This patch can be removed when Node.js upgrades to a version of V8 with the abov CL - they'll need to make the same change. diff --git a/test/parallel/test-fs-write.js b/test/parallel/test-fs-write.js -index a321f1b27adaa3f376f5e61ce5d9c1ceb3427cc7..85e8603023854de120219a98449ee64fb7372200 100644 +index 59b83f531cf0a60f960d0096aea70854f45bd629..9dcc35987a4757ea090e81c7de38a6af5bc3182f 100644 --- a/test/parallel/test-fs-write.js +++ b/test/parallel/test-fs-write.js -@@ -40,7 +40,7 @@ const constants = fs.constants; +@@ -38,7 +38,7 @@ const constants = fs.constants; const { externalizeString, isOneByteString } = global; // Account for extra globals exposed by --expose_externalize_string. diff --git a/patches/node/fix_add_default_values_for_variables_in_common_gypi.patch b/patches/node/fix_add_default_values_for_variables_in_common_gypi.patch index e2ad21390a8bf..73d08d17416a2 100644 --- a/patches/node/fix_add_default_values_for_variables_in_common_gypi.patch +++ b/patches/node/fix_add_default_values_for_variables_in_common_gypi.patch @@ -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. diff --git a/common.gypi b/common.gypi -index 94fae0651890435348dacff2fe1838ea4db92037..10d11f1e9aacfbe4bb53e1220afab1e68db98313 100644 +index d783c7f970237a648f585b9a9e5725494b5d9e2f..0b073571cd482d5124123c4490c564f839429b28 100644 --- a/common.gypi +++ b/common.gypi @@ -80,6 +80,23 @@ diff --git a/patches/node/fix_assert_module_in_the_renderer_process.patch b/patches/node/fix_assert_module_in_the_renderer_process.patch index f17c49507717d..7074b985d29c7 100644 --- a/patches/node/fix_assert_module_in_the_renderer_process.patch +++ b/patches/node/fix_assert_module_in_the_renderer_process.patch @@ -44,10 +44,10 @@ index b7d7a3da01d520984a5903cb9a0f1c288e0d5fa0..66a60c3726cd57e65db3e4fb57fb8572 const filename = call.getFileName(); const line = call.getLineNumber() - 1; diff --git a/src/api/environment.cc b/src/api/environment.cc -index d5a03d5e10faaa204b3f9f290fed79be824c78b1..c4caef25af670658965fc740ce03c2d2c4ed3e66 100644 +index c02906eacd90ac27d618e7578d1f928f16a858f7..74b4e15b8230c6380d41e84aa504824bb79b2ee5 100644 --- a/src/api/environment.cc +++ b/src/api/environment.cc -@@ -263,6 +263,9 @@ void SetIsolateErrorHandlers(v8::Isolate* isolate, const IsolateSettings& s) { +@@ -277,6 +277,9 @@ void SetIsolateErrorHandlers(v8::Isolate* isolate, const IsolateSettings& s) { auto* prepare_stack_trace_cb = s.prepare_stack_trace_callback ? s.prepare_stack_trace_callback : PrepareStackTraceCallback; isolate->SetPrepareStackTraceCallback(prepare_stack_trace_cb); @@ -58,10 +58,10 @@ index d5a03d5e10faaa204b3f9f290fed79be824c78b1..c4caef25af670658965fc740ce03c2d2 } diff --git a/src/node_options.cc b/src/node_options.cc -index 397f9d4a7a8e9a850ae2e13b84d7f893076f724d..365748f046f9d0f232d4f0ebc7b0c7f56bbd74e2 100644 +index f711ac936e76f9c16d15d7db759d0081a9eb018d..6eb2c137e1dd05b05e781820905cf6778107275d 100644 --- a/src/node_options.cc +++ b/src/node_options.cc -@@ -1215,6 +1215,11 @@ void GetEmbedderOptions(const FunctionCallbackInfo& args) { +@@ -1239,6 +1239,11 @@ void GetEmbedderOptions(const FunctionCallbackInfo& args) { Local context = env->context(); Local ret = Object::New(isolate); diff --git a/patches/node/fix_crypto_tests_to_run_with_bssl.patch b/patches/node/fix_crypto_tests_to_run_with_bssl.patch index 1858062c50841..68f0ca21fbd7f 100644 --- a/patches/node/fix_crypto_tests_to_run_with_bssl.patch +++ b/patches/node/fix_crypto_tests_to_run_with_bssl.patch @@ -31,10 +31,10 @@ index 4e3c32fdcd23fbe3e74bd5e624b739d224689f33..19d65aae7fa8ec9f9b907733ead17a20 // Test Parallel Execution w/ KeyObject is threadsafe in openssl3 { diff --git a/test/parallel/test-crypto-authenticated.js b/test/parallel/test-crypto-authenticated.js -index d358f6b63c0e9f5761157dc200daa484d9c5ead6..7a3e376d04020e7a883f56591bc07d9970d15c9a 100644 +index 6178445adbc634160c3c3ca699a36868f894e544..ff4dc2f7d527b5eb1fa442ba6b0f9ba04af39357 100644 --- a/test/parallel/test-crypto-authenticated.js +++ b/test/parallel/test-crypto-authenticated.js -@@ -50,7 +50,9 @@ const errMessages = { +@@ -48,7 +48,9 @@ const errMessages = { const ciphers = crypto.getCiphers(); const expectedWarnings = common.hasFipsCrypto ? @@ -45,7 +45,7 @@ index d358f6b63c0e9f5761157dc200daa484d9c5ead6..7a3e376d04020e7a883f56591bc07d99 ['Use Cipheriv for counter mode of aes-192-gcm'], ['Use Cipheriv for counter mode of aes-192-ccm'], ['Use Cipheriv for counter mode of aes-192-ccm'], -@@ -318,7 +320,9 @@ for (const test of TEST_CASES) { +@@ -315,7 +317,9 @@ for (const test of TEST_CASES) { // Test that create(De|C)ipher(iv)? throws if the mode is CCM and an invalid // authentication tag length has been specified. @@ -56,7 +56,7 @@ index d358f6b63c0e9f5761157dc200daa484d9c5ead6..7a3e376d04020e7a883f56591bc07d99 for (const authTagLength of [-1, true, false, NaN, 5.5]) { assert.throws(() => { crypto.createCipheriv('aes-256-ccm', -@@ -406,6 +410,10 @@ for (const test of TEST_CASES) { +@@ -403,6 +407,10 @@ for (const test of TEST_CASES) { // authentication tag has been specified. { for (const mode of ['ccm', 'ocb']) { @@ -67,7 +67,7 @@ index d358f6b63c0e9f5761157dc200daa484d9c5ead6..7a3e376d04020e7a883f56591bc07d99 assert.throws(() => { crypto.createCipheriv(`aes-256-${mode}`, 'FxLKsqdmv0E9xrQhp0b1ZgI0K7JFZJM8', -@@ -440,7 +448,9 @@ for (const test of TEST_CASES) { +@@ -437,7 +445,9 @@ for (const test of TEST_CASES) { } // Test that setAAD throws if an invalid plaintext length has been specified. @@ -78,7 +78,7 @@ index d358f6b63c0e9f5761157dc200daa484d9c5ead6..7a3e376d04020e7a883f56591bc07d99 const cipher = crypto.createCipheriv('aes-256-ccm', 'FxLKsqdmv0E9xrQhp0b1ZgI0K7JFZJM8', 'qkuZpJWCewa6S', -@@ -461,7 +471,9 @@ for (const test of TEST_CASES) { +@@ -458,7 +468,9 @@ for (const test of TEST_CASES) { } // Test that setAAD and update throw if the plaintext is too long. @@ -89,7 +89,7 @@ index d358f6b63c0e9f5761157dc200daa484d9c5ead6..7a3e376d04020e7a883f56591bc07d99 for (const ivLength of [13, 12]) { const maxMessageSize = (1 << (8 * (15 - ivLength))) - 1; const key = 'FxLKsqdmv0E9xrQhp0b1ZgI0K7JFZJM8'; -@@ -492,7 +504,9 @@ for (const test of TEST_CASES) { +@@ -489,7 +501,9 @@ for (const test of TEST_CASES) { // Test that setAAD throws if the mode is CCM and the plaintext length has not // been specified. @@ -100,7 +100,7 @@ index d358f6b63c0e9f5761157dc200daa484d9c5ead6..7a3e376d04020e7a883f56591bc07d99 assert.throws(() => { const cipher = crypto.createCipheriv('aes-256-ccm', 'FxLKsqdmv0E9xrQhp0b1ZgI0K7JFZJM8', -@@ -517,7 +531,9 @@ for (const test of TEST_CASES) { +@@ -514,7 +528,9 @@ for (const test of TEST_CASES) { } // Test that final() throws in CCM mode when no authentication tag is provided. @@ -111,7 +111,7 @@ index d358f6b63c0e9f5761157dc200daa484d9c5ead6..7a3e376d04020e7a883f56591bc07d99 if (!common.hasFipsCrypto) { const key = Buffer.from('1ed2233fa2223ef5d7df08546049406c', 'hex'); const iv = Buffer.from('7305220bca40d4c90e1791e9', 'hex'); -@@ -549,7 +565,9 @@ for (const test of TEST_CASES) { +@@ -546,7 +562,9 @@ for (const test of TEST_CASES) { } // Test that an IV length of 11 does not overflow max_message_size_. @@ -122,7 +122,7 @@ index d358f6b63c0e9f5761157dc200daa484d9c5ead6..7a3e376d04020e7a883f56591bc07d99 const key = 'x'.repeat(16); const iv = Buffer.from('112233445566778899aabb', 'hex'); const options = { authTagLength: 8 }; -@@ -566,6 +584,10 @@ for (const test of TEST_CASES) { +@@ -563,6 +581,10 @@ for (const test of TEST_CASES) { const iv = Buffer.from('0123456789ab', 'utf8'); for (const mode of ['gcm', 'ocb']) { @@ -133,7 +133,7 @@ index d358f6b63c0e9f5761157dc200daa484d9c5ead6..7a3e376d04020e7a883f56591bc07d99 for (const authTagLength of mode === 'gcm' ? [undefined, 8] : [8]) { const cipher = crypto.createCipheriv(`aes-128-${mode}`, key, iv, { authTagLength -@@ -600,6 +622,10 @@ for (const test of TEST_CASES) { +@@ -597,6 +619,10 @@ for (const test of TEST_CASES) { const opts = { authTagLength: 8 }; for (const mode of ['gcm', 'ccm', 'ocb']) { @@ -144,7 +144,7 @@ index d358f6b63c0e9f5761157dc200daa484d9c5ead6..7a3e376d04020e7a883f56591bc07d99 const cipher = crypto.createCipheriv(`aes-128-${mode}`, key, iv, opts); const ciphertext = Buffer.concat([cipher.update(plain), cipher.final()]); const tag = cipher.getAuthTag(); -@@ -622,7 +648,9 @@ for (const test of TEST_CASES) { +@@ -619,7 +645,9 @@ for (const test of TEST_CASES) { // Test chacha20-poly1305 rejects invalid IV lengths of 13, 14, 15, and 16 (a // length of 17 or greater was already rejected). // - https://www.openssl.org/news/secadv/20190306.txt @@ -155,7 +155,7 @@ index d358f6b63c0e9f5761157dc200daa484d9c5ead6..7a3e376d04020e7a883f56591bc07d99 // Valid extracted from TEST_CASES, check that it detects IV tampering. const valid = { algo: 'chacha20-poly1305', -@@ -667,6 +695,9 @@ for (const test of TEST_CASES) { +@@ -664,6 +692,9 @@ for (const test of TEST_CASES) { { // CCM cipher without data should not crash, see https://github.com/nodejs/node/issues/38035. @@ -585,10 +585,10 @@ index 9afcb38616dafd6da1ab7b5843d68f4f796ca9a6..00d3381056a5a40c549f06d74c130149 } +*/ diff --git a/test/parallel/test-crypto-sign-verify.js b/test/parallel/test-crypto-sign-verify.js -index 74c0ff53eb18b749d4018b50d654df943403245b..aab253ca5d4504c445c88cd9519f8385a7b39b91 100644 +index b39ec22dceb5b704f8c262bd38163d93ac1a3b47..89cfa9fc49719e5a6f2c5b96f25c61340286cadb 100644 --- a/test/parallel/test-crypto-sign-verify.js +++ b/test/parallel/test-crypto-sign-verify.js -@@ -29,6 +29,7 @@ const keySize = 2048; +@@ -28,6 +28,7 @@ const keySize = 2048; 'instance when called without `new`'); } @@ -596,7 +596,7 @@ index 74c0ff53eb18b749d4018b50d654df943403245b..aab253ca5d4504c445c88cd9519f8385 // Test handling of exceptional conditions { const library = { -@@ -69,6 +70,7 @@ const keySize = 2048; +@@ -68,6 +69,7 @@ const keySize = 2048; delete Object.prototype.opensslErrorStack; } @@ -604,7 +604,7 @@ index 74c0ff53eb18b749d4018b50d654df943403245b..aab253ca5d4504c445c88cd9519f8385 assert.throws( () => crypto.createVerify('SHA256').verify({ -@@ -342,15 +344,17 @@ assert.throws( +@@ -341,15 +343,17 @@ assert.throws( padding: crypto.constants.RSA_PKCS1_OAEP_PADDING }); }, common.hasOpenSSL3 ? { @@ -626,7 +626,7 @@ index 74c0ff53eb18b749d4018b50d654df943403245b..aab253ca5d4504c445c88cd9519f8385 }); } -@@ -420,10 +424,12 @@ assert.throws( +@@ -419,10 +423,12 @@ assert.throws( public: fixtures.readKey('ed25519_public.pem', 'ascii'), algo: null, sigLen: 64 }, @@ -639,7 +639,7 @@ index 74c0ff53eb18b749d4018b50d654df943403245b..aab253ca5d4504c445c88cd9519f8385 { private: fixtures.readKey('rsa_private_2048.pem', 'ascii'), public: fixtures.readKey('rsa_public_2048.pem', 'ascii'), algo: 'sha1', -@@ -494,7 +500,7 @@ assert.throws( +@@ -493,7 +499,7 @@ assert.throws( { const data = Buffer.from('Hello world'); @@ -668,7 +668,7 @@ index 008ab129f0e019c659eecf5a76b7eb412c947fe3..6688f5d916f50e1e4fcfff1619c8634a cipher.end('Papaya!'); // Should not cause an unhandled exception. diff --git a/test/parallel/test-crypto-x509.js b/test/parallel/test-crypto-x509.js -index 930a2ba09088663298208f165f06a7710770938f..592b4140f14e659dfa38e438473c8d4ac4ae60ab 100644 +index 89a7521544f7051edc1779138551bbad1972b3fb..91df6acc65d4003999f29f0fa5f639056b21ee3b 100644 --- a/test/parallel/test-crypto-x509.js +++ b/test/parallel/test-crypto-x509.js @@ -111,7 +111,7 @@ const der = Buffer.from( @@ -865,7 +865,7 @@ index 543ee176fb6af38874fee9f14be76f3fdda11060..fef9f1bc2f9fc6c220cf47847e86e038 } diff --git a/test/parallel/test-https-agent-session-eviction.js b/test/parallel/test-https-agent-session-eviction.js -index 940c43cc40bf15e51df177ee30ecc69ffbeec296..e95743a91a3c709c7d2c10dc80b3f75b7d988027 100644 +index da5600710560b22049eba1ef18bbb742d447a673..8917b96f666de916616af2fb3ce3a58d00af7438 100644 --- a/test/parallel/test-https-agent-session-eviction.js +++ b/test/parallel/test-https-agent-session-eviction.js @@ -14,7 +14,7 @@ const options = { @@ -905,10 +905,10 @@ index aa685ca9e09cf0d17ff4d5480089e9977dd51f72..ccafa427433922155c1afd5d95ba69d8 })); socket.end('Hello'); diff --git a/test/parallel/test-tls-getprotocol.js b/test/parallel/test-tls-getprotocol.js -index d45287d671d8afb1be391d391efc4d098d0b77c9..86f1a12528b535eefeb8c263581f1240f3df5771 100644 +index 7da2f60676d00e8e40d890f2efd46102154ca34d..2230b8cf85259d6670e274d6b84d83fd8788e83e 100644 --- a/test/parallel/test-tls-getprotocol.js +++ b/test/parallel/test-tls-getprotocol.js -@@ -18,7 +18,7 @@ const clientConfigs = [ +@@ -27,7 +27,7 @@ const clientConfigs = [ const serverConfig = { secureProtocol: 'TLS_method', @@ -931,10 +931,10 @@ index b06f2fa2c53ea72f9a66f0d002dd9281d0259a0f..864fffeebfad75d95416fd47efdea7f2 const server = https.createServer(opts, (req, res) => { diff --git a/test/parallel/test-webcrypto-derivebits.js b/test/parallel/test-webcrypto-derivebits.js -index 442423954b10b2ee1696eb7db56eaa4c88492122..cbb96d7de046c80fad608431b7ec0216e2d271fb 100644 +index eb09bc24f0cb8244b05987e3a7c1d203360d3a38..da891fffa29d5666d91e4445e54c43e3688b870a 100644 --- a/test/parallel/test-webcrypto-derivebits.js +++ b/test/parallel/test-webcrypto-derivebits.js -@@ -101,6 +101,7 @@ const { subtle } = require('crypto').webcrypto; +@@ -101,6 +101,7 @@ const { subtle } = globalThis.crypto; tests.then(common.mustCall()); } @@ -942,16 +942,16 @@ index 442423954b10b2ee1696eb7db56eaa4c88492122..cbb96d7de046c80fad608431b7ec0216 // Test X25519 and X448 bit derivation { async function test(name) { -@@ -126,3 +127,4 @@ const { subtle } = require('crypto').webcrypto; +@@ -126,3 +127,4 @@ const { subtle } = globalThis.crypto; test('X25519').then(common.mustCall()); test('X448').then(common.mustCall()); } +*/ diff --git a/test/parallel/test-webcrypto-derivekey.js b/test/parallel/test-webcrypto-derivekey.js -index b819b998d217e0c71e9b41f175de6802d3ac7d90..fbd32b02abd120aa02b9ac92341ef1331422308d 100644 +index 558d37d90d5796b30101d1b512c9df3e7661d0db..c18f9670b10cb84c6902391f20e0ff75729cc960 100644 --- a/test/parallel/test-webcrypto-derivekey.js +++ b/test/parallel/test-webcrypto-derivekey.js -@@ -174,6 +174,7 @@ const { webcrypto: { subtle }, KeyObject } = require('crypto'); +@@ -175,6 +175,7 @@ const { KeyObject } = require('crypto'); })().then(common.mustCall()); } @@ -959,16 +959,16 @@ index b819b998d217e0c71e9b41f175de6802d3ac7d90..fbd32b02abd120aa02b9ac92341ef133 // Test X25519 and X448 key derivation { async function test(name) { -@@ -208,3 +209,4 @@ const { webcrypto: { subtle }, KeyObject } = require('crypto'); +@@ -209,3 +210,4 @@ const { KeyObject } = require('crypto'); test('X25519').then(common.mustCall()); test('X448').then(common.mustCall()); } +*/ diff --git a/test/parallel/test-webcrypto-sign-verify.js b/test/parallel/test-webcrypto-sign-verify.js -index 6c6b15781549a4b37781bf0b8014054dc5d8c746..142d41b169c836201660d78c19383f3ffc469407 100644 +index de736102bdcb71a5560c95f7041537f25026aed4..638fdf0d798f3309528c63f0f8598f3df5528339 100644 --- a/test/parallel/test-webcrypto-sign-verify.js +++ b/test/parallel/test-webcrypto-sign-verify.js -@@ -105,6 +105,7 @@ const { subtle } = require('crypto').webcrypto; +@@ -105,6 +105,7 @@ const { subtle } = globalThis.crypto; test('hello world').then(common.mustCall()); } @@ -976,13 +976,13 @@ index 6c6b15781549a4b37781bf0b8014054dc5d8c746..142d41b169c836201660d78c19383f3f // Test Sign/Verify Ed25519 { async function test(data) { -@@ -144,3 +145,4 @@ const { subtle } = require('crypto').webcrypto; +@@ -144,3 +145,4 @@ const { subtle } = globalThis.crypto; test('hello world').then(common.mustCall()); } +*/ diff --git a/test/parallel/test-webcrypto-wrap-unwrap.js b/test/parallel/test-webcrypto-wrap-unwrap.js -index 670f19b7e4a190a222cc997f67975c3d49f65035..d4c4812cab56bcb51435aa6dd27545368fc11ed7 100644 +index d1ca571af4be713082d32093bfb8a65f2aef9800..57b8df2ce18df58ff54b2d828af67e3c2e082fe0 100644 --- a/test/parallel/test-webcrypto-wrap-unwrap.js +++ b/test/parallel/test-webcrypto-wrap-unwrap.js @@ -18,14 +18,15 @@ const kWrappingData = { @@ -1014,7 +1014,7 @@ index 670f19b7e4a190a222cc997f67975c3d49f65035..d4c4812cab56bcb51435aa6dd2754536 function generateWrappingKeys() { diff --git a/test/parallel/test-x509-escaping.js b/test/parallel/test-x509-escaping.js -index 170103fd9c973d64a30ee319a45c7e11c72a19d4..c19118146269651e4fe7d5591360876ce66bb1f6 100644 +index e6ae4d886908cbc0e56787009db855dad8b12ba7..a17147daa0576ec49e560c05448f1ed0ae8d5640 100644 --- a/test/parallel/test-x509-escaping.js +++ b/test/parallel/test-x509-escaping.js @@ -447,7 +447,7 @@ const { hasOpenSSL3 } = common; diff --git a/patches/node/fix_expose_the_built-in_electron_module_via_the_esm_loader.patch b/patches/node/fix_expose_the_built-in_electron_module_via_the_esm_loader.patch index 718083377e10f..b98499094a2f2 100644 --- a/patches/node/fix_expose_the_built-in_electron_module_via_the_esm_loader.patch +++ b/patches/node/fix_expose_the_built-in_electron_module_via_the_esm_loader.patch @@ -6,10 +6,10 @@ Subject: fix: expose the built-in electron module via the ESM loader This allows usage of `import { app } from 'electron'` and `import('electron')` natively in the browser + non-sandboxed renderer diff --git a/lib/internal/modules/esm/get_format.js b/lib/internal/modules/esm/get_format.js -index 219ef03a21214deb8961044cfc18ef9c1e711b60..7749b37001f869fe565d8c450ff7ca2b6f3faa7a 100644 +index 4ac9c011d153f4cb39cb7d4f46de0f8e65f70a56..c702bd6ad329e9693557cdd5fb7435396ad76bad 100644 --- a/lib/internal/modules/esm/get_format.js +++ b/lib/internal/modules/esm/get_format.js -@@ -30,6 +30,7 @@ const protocolHandlers = { +@@ -27,6 +27,7 @@ const protocolHandlers = { 'http:': getHttpProtocolModuleFormat, 'https:': getHttpProtocolModuleFormat, 'node:'() { return 'builtin'; }, @@ -18,10 +18,10 @@ index 219ef03a21214deb8961044cfc18ef9c1e711b60..7749b37001f869fe565d8c450ff7ca2b /** diff --git a/lib/internal/modules/esm/load.js b/lib/internal/modules/esm/load.js -index 71a9f8da0b49f3dca786eab07d44201a1bc76240..d8a072cf6af3b0d3a47ee69be04b26875683d261 100644 +index d064296d11c463616111d28a32b7ad3f6a72bebd..9be4495726597bb48c544b362e3cf0e79e0291e1 100644 --- a/lib/internal/modules/esm/load.js +++ b/lib/internal/modules/esm/load.js -@@ -121,6 +121,7 @@ function throwIfUnsupportedURLScheme(parsed, experimentalNetworkImports) { +@@ -201,6 +201,7 @@ function throwIfUnsupportedURLScheme(parsed, experimentalNetworkImports) { protocol !== 'file:' && protocol !== 'data:' && protocol !== 'node:' && @@ -29,7 +29,7 @@ index 71a9f8da0b49f3dca786eab07d44201a1bc76240..d8a072cf6af3b0d3a47ee69be04b2687 ( !experimentalNetworkImports || ( -@@ -129,7 +130,7 @@ function throwIfUnsupportedURLScheme(parsed, experimentalNetworkImports) { +@@ -209,7 +210,7 @@ function throwIfUnsupportedURLScheme(parsed, experimentalNetworkImports) { ) ) ) { @@ -39,10 +39,10 @@ index 71a9f8da0b49f3dca786eab07d44201a1bc76240..d8a072cf6af3b0d3a47ee69be04b2687 ArrayPrototypePush(schemes, 'https', 'http'); } diff --git a/lib/internal/modules/esm/resolve.js b/lib/internal/modules/esm/resolve.js -index 7006887a6fe2bab525e52c6b0c76b5d089699a14..a93d93b3c2aae3ef790ffa4f417d50b884451549 100644 +index acb5ddca8af3d2495ce27d6426b28e6ff73a8f33..6a5d92d932df4f0b34840283821cf18839fbe1a5 100644 --- a/lib/internal/modules/esm/resolve.js +++ b/lib/internal/modules/esm/resolve.js -@@ -825,6 +825,8 @@ function parsePackageName(specifier, base) { +@@ -725,6 +725,8 @@ function parsePackageName(specifier, base) { return { packageName, packageSubpath, isScoped }; } @@ -51,7 +51,7 @@ index 7006887a6fe2bab525e52c6b0c76b5d089699a14..a93d93b3c2aae3ef790ffa4f417d50b8 /** * @param {string} specifier * @param {string | URL | undefined} base -@@ -837,6 +839,10 @@ function packageResolve(specifier, base, conditions) { +@@ -736,6 +738,10 @@ function packageResolve(specifier, base, conditions) { return new URL('node:' + specifier); } @@ -89,10 +89,10 @@ index b143cd0ad34d0e039db3e7493be00d923cc68b2d..4020813f061d85ee27d50b938825319a // We might trigger a getter -> dont fail. let value; diff --git a/lib/internal/url.js b/lib/internal/url.js -index 9c11377aef1f24c6ce5cfdf02b800440afc4686a..b66a5bbde3e8c419d5385339805cbd94f630986d 100644 +index 8d5926e8fcb9df031e37698588075a34a80aea6c..6df0b68c8d35445d5f02475678484a6d5157762e 100644 --- a/lib/internal/url.js +++ b/lib/internal/url.js -@@ -1432,6 +1432,8 @@ function fileURLToPath(path) { +@@ -1389,6 +1389,8 @@ function fileURLToPath(path) { path = new URL(path); else if (!isURL(path)) throw new ERR_INVALID_ARG_TYPE('path', ['string', 'URL'], path); diff --git a/patches/node/fix_expose_tracing_agent_and_use_tracing_tracingcontroller_instead.patch b/patches/node/fix_expose_tracing_agent_and_use_tracing_tracingcontroller_instead.patch index 214695d67d33a..dfe562f610f26 100644 --- a/patches/node/fix_expose_tracing_agent_and_use_tracing_tracingcontroller_instead.patch +++ b/patches/node/fix_expose_tracing_agent_and_use_tracing_tracingcontroller_instead.patch @@ -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. diff --git a/src/api/environment.cc b/src/api/environment.cc -index e1095037f3b9970e3ffd314b641b454f1248e33e..7ef6d04794c31064c70dbbb0bfc1dd7bf4d1b8fc 100644 +index 6a6164b6d294430b6f2fe826cdcef5a9cc3f9660..035f495687856b0cfbcc4e87ba6e90d56c99e837 100644 --- a/src/api/environment.cc +++ b/src/api/environment.cc -@@ -520,6 +520,10 @@ MultiIsolatePlatform* GetMultiIsolatePlatform(IsolateData* env) { +@@ -583,6 +583,10 @@ MultiIsolatePlatform* GetMultiIsolatePlatform(IsolateData* env) { return env->platform(); } @@ -22,10 +22,10 @@ index e1095037f3b9970e3ffd314b641b454f1248e33e..7ef6d04794c31064c70dbbb0bfc1dd7b int thread_pool_size, node::tracing::TracingController* tracing_controller) { diff --git a/src/node.h b/src/node.h -index ac9bce58f33380cd8b687a088176a446c1e8cf34..b50bd5a941d381778d464fdb2770566a3ac34fed 100644 +index ca01c42e8af484def476ba27cb270a0cc90226c9..dcce529664e1d126115545d6ba7f5b8492b0e921 100644 --- a/src/node.h +++ b/src/node.h -@@ -130,6 +130,7 @@ namespace node { +@@ -132,6 +132,7 @@ struct SnapshotData; namespace tracing { @@ -33,7 +33,7 @@ index ac9bce58f33380cd8b687a088176a446c1e8cf34..b50bd5a941d381778d464fdb2770566a class TracingController; } -@@ -688,6 +689,8 @@ NODE_EXTERN void GetNodeReport(Environment* env, +@@ -772,6 +773,8 @@ NODE_EXTERN void GetNodeReport(Environment* env, NODE_EXTERN MultiIsolatePlatform* GetMultiIsolatePlatform(Environment* env); NODE_EXTERN MultiIsolatePlatform* GetMultiIsolatePlatform(IsolateData* env); diff --git a/patches/node/fix_handle_boringssl_and_openssl_incompatibilities.patch b/patches/node/fix_handle_boringssl_and_openssl_incompatibilities.patch index 0d1d0a2d5833b..80cdf96192e5f 100644 --- a/patches/node/fix_handle_boringssl_and_openssl_incompatibilities.patch +++ b/patches/node/fix_handle_boringssl_and_openssl_incompatibilities.patch @@ -17,7 +17,7 @@ Upstreams: - https://github.com/nodejs/node/pull/39136 diff --git a/src/crypto/crypto_cipher.cc b/src/crypto/crypto_cipher.cc -index 2685f5ea0bea998094453a5a29d23b1aaae55667..0ad4ba47b50a87bcf9e31a73c20a3a51be4ab96e 100644 +index 2e6e02d229b67bc97e0d15a2704e091d5289df9c..6fd0416820998bd0ba4c4cd4fe3093f144610f18 100644 --- a/src/crypto/crypto_cipher.cc +++ b/src/crypto/crypto_cipher.cc @@ -27,7 +27,8 @@ using v8::Value; @@ -104,7 +104,7 @@ index c6120a655ec853aef11c66ed37d7ca0ffb957dd3..a52ca15cb0ab592d4196d4bd0f113324 if (!Set(env->context(), obj, diff --git a/src/crypto/crypto_context.cc b/src/crypto/crypto_context.cc -index 838ee2a68dffc5a2aeca2bdb51b076795b2b145f..b0b18cd30c854c8c30d74afbf3ed352d3d23f30d 100644 +index 3876adf7d72211d8d8c5a94564168094ecfc660b..ccd166d9439a821328d2ad35352488960206f65e 100644 --- a/src/crypto/crypto_context.cc +++ b/src/crypto/crypto_context.cc @@ -63,7 +63,7 @@ inline X509_STORE* GetOrCreateRootCertStore() { @@ -116,7 +116,7 @@ index 838ee2a68dffc5a2aeca2bdb51b076795b2b145f..b0b18cd30c854c8c30d74afbf3ed352d if (!bio) return nullptr; ByteSource bsrc = ByteSource::FromStringOrBuffer(env, v); if (bsrc.size() > INT_MAX) return nullptr; -@@ -855,10 +855,12 @@ void SecureContext::SetDHParam(const FunctionCallbackInfo& args) { +@@ -861,10 +861,12 @@ void SecureContext::SetDHParam(const FunctionCallbackInfo& args) { // If the user specified "auto" for dhparams, the JavaScript layer will pass // true to this function instead of the original string. Any other string // value will be interpreted as custom DH parameters below. @@ -130,10 +130,10 @@ index 838ee2a68dffc5a2aeca2bdb51b076795b2b145f..b0b18cd30c854c8c30d74afbf3ed352d DHPointer dh; { diff --git a/src/crypto/crypto_dh.cc b/src/crypto/crypto_dh.cc -index dd69323b80076d7333b80453c9cc9ef5b680ce27..6431b768c83fa27b2287588e936f93ae00169ad5 100644 +index 408d6be2a9cfdbcb52af285204c07c40bf74a5a9..9c3244a14bc286d60805bac5719df6595d802768 100644 --- a/src/crypto/crypto_dh.cc +++ b/src/crypto/crypto_dh.cc -@@ -154,13 +154,11 @@ bool DiffieHellman::Init(BignumPointer&& bn_p, int g) { +@@ -153,13 +153,11 @@ bool DiffieHellman::Init(BignumPointer&& bn_p, int g) { bool DiffieHellman::Init(const char* p, int p_len, int g) { dh_.reset(DH_new()); if (p_len <= 0) { @@ -149,7 +149,7 @@ index dd69323b80076d7333b80453c9cc9ef5b680ce27..6431b768c83fa27b2287588e936f93ae return false; } BIGNUM* bn_p = -@@ -178,21 +176,18 @@ bool DiffieHellman::Init(const char* p, int p_len, int g) { +@@ -177,21 +175,18 @@ bool DiffieHellman::Init(const char* p, int p_len, int g) { bool DiffieHellman::Init(const char* p, int p_len, const char* g, int g_len) { dh_.reset(DH_new()); if (p_len <= 0) { @@ -174,7 +174,7 @@ index dd69323b80076d7333b80453c9cc9ef5b680ce27..6431b768c83fa27b2287588e936f93ae return false; } BIGNUM* bn_p = -@@ -219,8 +214,10 @@ typedef BignumPointer (*StandardizedGroupInstantiator)(); +@@ -218,8 +213,10 @@ typedef BignumPointer (*StandardizedGroupInstantiator)(); inline StandardizedGroupInstantiator FindDiffieHellmanGroup(const char* name) { #define V(n, p) \ if (StringEqualNoCase(name, n)) return InstantiateStandardizedGroup

@@ -185,7 +185,7 @@ index dd69323b80076d7333b80453c9cc9ef5b680ce27..6431b768c83fa27b2287588e936f93ae V("modp5", BN_get_rfc3526_prime_1536); V("modp14", BN_get_rfc3526_prime_2048); V("modp15", BN_get_rfc3526_prime_3072); -@@ -559,15 +556,20 @@ EVPKeyCtxPointer DhKeyGenTraits::Setup(DhKeyPairGenConfig* params) { +@@ -558,15 +555,20 @@ EVPKeyCtxPointer DhKeyGenTraits::Setup(DhKeyPairGenConfig* params) { return EVPKeyCtxPointer(); } @@ -206,7 +206,7 @@ index dd69323b80076d7333b80453c9cc9ef5b680ce27..6431b768c83fa27b2287588e936f93ae if (!param_ctx || EVP_PKEY_paramgen_init(param_ctx.get()) <= 0 || EVP_PKEY_CTX_set_dh_paramgen_prime_len( -@@ -581,6 +583,9 @@ EVPKeyCtxPointer DhKeyGenTraits::Setup(DhKeyPairGenConfig* params) { +@@ -580,6 +582,9 @@ EVPKeyCtxPointer DhKeyGenTraits::Setup(DhKeyPairGenConfig* params) { } key_params = EVPKeyPointer(raw_params); @@ -241,7 +241,7 @@ index 3fa4a415dc911a13afd90dfb31c1ed4ad0fd268f..fa48dffc31342c44a1c1207b9d4c3dc7 return EVPKeyCtxPointer(); diff --git a/src/crypto/crypto_random.cc b/src/crypto/crypto_random.cc -index 9850104cd607f877a8e867e83a8d4d4ccd4a4395..f153b3366e2795133ff3df7b7a2153a6106237e4 100644 +index 245f352918696413f8f0f7cec94dbcec687685af..35c1c1ce9f0e3d59b75e3966d485bf70b846de5b 100644 --- a/src/crypto/crypto_random.cc +++ b/src/crypto/crypto_random.cc @@ -140,7 +140,7 @@ Maybe RandomPrimeTraits::AdditionalConfig( @@ -254,7 +254,7 @@ index 9850104cd607f877a8e867e83a8d4d4ccd4a4395..f153b3366e2795133ff3df7b7a2153a6 THROW_ERR_CRYPTO_OPERATION_FAILED(env, "could not generate prime"); return Nothing(); diff --git a/src/crypto/crypto_rsa.cc b/src/crypto/crypto_rsa.cc -index 47a42246eddfc795b735f5efd08edf2832bbf6c1..7e6afaa1d3a4612fd567924b40438a318ac93bac 100644 +index 3f8499457cf10765fa55e5018a26580f2c5ef15d..31647423be528949db744cbea43586ece5243bac 100644 --- a/src/crypto/crypto_rsa.cc +++ b/src/crypto/crypto_rsa.cc @@ -610,10 +610,11 @@ Maybe GetRsaKeyDetail( @@ -274,10 +274,10 @@ index 47a42246eddfc795b735f5efd08edf2832bbf6c1..7e6afaa1d3a4612fd567924b40438a31 if (target diff --git a/src/crypto/crypto_util.cc b/src/crypto/crypto_util.cc -index 1cfebb5e41d35d1845ba8e40657d6e8798988223..2302e3bad99625eb5dd5587218d0a1985837fb8e 100644 +index 5734d8fdc5505e1586f571c19b840bd56e9c9f1f..3034b114e081e2b32dd5b71653927a41af7d48df 100644 --- a/src/crypto/crypto_util.cc +++ b/src/crypto/crypto_util.cc -@@ -518,24 +518,15 @@ Maybe Decorate(Environment* env, Local obj, +@@ -517,24 +517,15 @@ Maybe Decorate(Environment* env, Local obj, V(BIO) \ V(PKCS7) \ V(X509V3) \ @@ -303,7 +303,7 @@ index 1cfebb5e41d35d1845ba8e40657d6e8798988223..2302e3bad99625eb5dd5587218d0a198 V(USER) \ #define V(name) case ERR_LIB_##name: lib = #name "_"; break; -@@ -709,7 +700,7 @@ void SecureBuffer(const FunctionCallbackInfo& args) { +@@ -715,7 +706,7 @@ void SecureBuffer(const FunctionCallbackInfo& args) { CHECK(args[0]->IsUint32()); Environment* env = Environment::GetCurrent(args); uint32_t len = args[0].As()->Value(); @@ -312,7 +312,7 @@ index 1cfebb5e41d35d1845ba8e40657d6e8798988223..2302e3bad99625eb5dd5587218d0a198 if (data == nullptr) { // There's no memory available for the allocation. // Return nothing. -@@ -720,7 +711,7 @@ void SecureBuffer(const FunctionCallbackInfo& args) { +@@ -726,7 +717,7 @@ void SecureBuffer(const FunctionCallbackInfo& args) { data, len, [](void* data, size_t len, void* deleter_data) { @@ -321,7 +321,7 @@ index 1cfebb5e41d35d1845ba8e40657d6e8798988223..2302e3bad99625eb5dd5587218d0a198 }, data); Local buffer = ArrayBuffer::New(env->isolate(), store); -@@ -728,10 +719,12 @@ void SecureBuffer(const FunctionCallbackInfo& args) { +@@ -734,10 +725,12 @@ void SecureBuffer(const FunctionCallbackInfo& args) { } void SecureHeapUsed(const FunctionCallbackInfo& args) { @@ -335,10 +335,10 @@ index 1cfebb5e41d35d1845ba8e40657d6e8798988223..2302e3bad99625eb5dd5587218d0a198 } // namespace diff --git a/src/node_metadata.cc b/src/node_metadata.cc -index 6fe09f843e26b7f29faadf5035d368ed8b7eba38..326a9ee8a6d24d0c78537bfe5d9da394a439da90 100644 +index 22546e9de25bdf95a00d06057626b544d5bf6f28..3a20f2f6a153c2f0b48b86ed83b92484ac4c274a 100644 --- a/src/node_metadata.cc +++ b/src/node_metadata.cc -@@ -14,7 +14,7 @@ +@@ -16,7 +16,7 @@ #include "v8.h" #include "zlib.h" @@ -348,7 +348,7 @@ index 6fe09f843e26b7f29faadf5035d368ed8b7eba38..326a9ee8a6d24d0c78537bfe5d9da394 #if NODE_OPENSSL_HAS_QUIC #include diff --git a/src/node_metadata.h b/src/node_metadata.h -index 1831bfd0baaac70277fc274a72235bf6a04697cb..1c0a3fcdeb44dc947bb8c38459533779575379da 100644 +index cf051585e779e2b03bd7b95fe5008b89cc7f8162..9de49c6828468fdf846dcd4ad445390f14446099 100644 --- a/src/node_metadata.h +++ b/src/node_metadata.h @@ -6,7 +6,7 @@ @@ -361,7 +361,7 @@ index 1831bfd0baaac70277fc274a72235bf6a04697cb..1c0a3fcdeb44dc947bb8c38459533779 #if NODE_OPENSSL_HAS_QUIC #include diff --git a/src/node_options.cc b/src/node_options.cc -index 26f205bc3b425c5a6546a0ab27397754d6fe213d..397f9d4a7a8e9a850ae2e13b84d7f893076f724d 100644 +index b544f1209143c0d4a01b1df3257e5b2ba1d5bfee..f711ac936e76f9c16d15d7db759d0081a9eb018d 100644 --- a/src/node_options.cc +++ b/src/node_options.cc @@ -6,7 +6,7 @@ @@ -374,7 +374,7 @@ index 26f205bc3b425c5a6546a0ab27397754d6fe213d..397f9d4a7a8e9a850ae2e13b84d7f893 #endif diff --git a/src/node_options.h b/src/node_options.h -index 7d210049aff445bd9b721dbded1ea299c514f415..864ed5673aa0aa30557e4c320c1eeb2b45e7defa 100644 +index bc18a45e681a3cd8d26ea94862d7a6eb3a6631fc..08141c540c0c3fe4f2a4fe66bf75557a71a1d8e6 100644 --- a/src/node_options.h +++ b/src/node_options.h @@ -11,7 +11,7 @@ diff --git a/patches/node/fix_handle_possible_disabled_sharedarraybuffer.patch b/patches/node/fix_handle_possible_disabled_sharedarraybuffer.patch index 6fee546d651d1..26a780bee99e3 100644 --- a/patches/node/fix_handle_possible_disabled_sharedarraybuffer.patch +++ b/patches/node/fix_handle_possible_disabled_sharedarraybuffer.patch @@ -24,10 +24,10 @@ index 9f5340c223902c5ff61def05e8a4f470b4f328e8..d6dbfa482f9ebff3f99fb810e072cf9a } diff --git a/lib/internal/main/worker_thread.js b/lib/internal/main/worker_thread.js -index be4d82086199855a10108528b3dacc663b839454..10c33bacc0529e12f52aaf1baf6d42489b2a75a7 100644 +index 4460042d7bfbb8286a9b2abcbfb9e44f21b5d944..027a2de1878d5f09dc5d44b1b21af7163ea1b999 100644 --- a/lib/internal/main/worker_thread.js +++ b/lib/internal/main/worker_thread.js -@@ -108,6 +108,7 @@ port.on('message', (message) => { +@@ -112,6 +112,7 @@ port.on('message', (message) => { require('internal/worker').assignEnvironmentData(environmentData); diff --git a/patches/node/fix_suppress_clang_-wdeprecated-declarations_in_libuv.patch b/patches/node/fix_suppress_clang_-wdeprecated-declarations_in_libuv.patch index 0c287b3ad3d55..391271a50ffac 100644 --- a/patches/node/fix_suppress_clang_-wdeprecated-declarations_in_libuv.patch +++ b/patches/node/fix_suppress_clang_-wdeprecated-declarations_in_libuv.patch @@ -6,10 +6,10 @@ Subject: fix: suppress clang -Wdeprecated-declarations in libuv Should be upstreamed. diff --git a/deps/uv/src/win/util.c b/deps/uv/src/win/util.c -index 99432053cc3b242e514268b7aba2e2d83a9e64f2..750a5424953aad104ba1e865fefd55d316485917 100644 +index f6ec79cd57b5010ed5fd6829d952bcdacc8b7671..5cda078a55f7825d135a107fa98e1aa3527dd147 100644 --- a/deps/uv/src/win/util.c +++ b/deps/uv/src/win/util.c -@@ -1743,10 +1743,17 @@ int uv_os_uname(uv_utsname_t* buffer) { +@@ -1685,10 +1685,17 @@ int uv_os_uname(uv_utsname_t* buffer) { #ifdef _MSC_VER #pragma warning(suppress : 4996) #endif diff --git a/patches/node/lib_test_do_not_hardcode_buffer_kmaxlength.patch b/patches/node/lib_test_do_not_hardcode_buffer_kmaxlength.patch index 93b636ffe5dde..4ec352ead6127 100644 --- a/patches/node/lib_test_do_not_hardcode_buffer_kmaxlength.patch +++ b/patches/node/lib_test_do_not_hardcode_buffer_kmaxlength.patch @@ -16,10 +16,10 @@ Reviewed-By: Yagiz Nizipli (cherry picked from commit a4fdb1abe0844d86b4cbfcc4051794656e7d746e) diff --git a/lib/internal/blob.js b/lib/internal/blob.js -index a25f6cf7df23875a5cefc0a4f92a997494a313af..58d2193195d9523d3bc43054efbbe4eebb0c7b05 100644 +index d0e47c1a4397a875c937d43c3b72dbd1e1de35a7..400d2c5fd21bc962a8befc4d80527216baddd6d5 100644 --- a/lib/internal/blob.js +++ b/lib/internal/blob.js -@@ -25,6 +25,9 @@ const { +@@ -24,6 +24,9 @@ const { concat, getDataObject, } = internalBinding('blob'); @@ -29,7 +29,7 @@ index a25f6cf7df23875a5cefc0a4f92a997494a313af..58d2193195d9523d3bc43054efbbe4ee const { TextDecoder, -@@ -61,7 +64,6 @@ const { +@@ -62,7 +65,6 @@ const { } = require('internal/errors'); const { @@ -37,7 +37,7 @@ index a25f6cf7df23875a5cefc0a4f92a997494a313af..58d2193195d9523d3bc43054efbbe4ee validateDictionary, } = require('internal/validators'); -@@ -161,8 +163,8 @@ class Blob { +@@ -158,8 +160,8 @@ class Blob { return src; }); diff --git a/patches/node/pass_all_globals_through_require.patch b/patches/node/pass_all_globals_through_require.patch index b182bda63fced..79bdf3816094b 100644 --- a/patches/node/pass_all_globals_through_require.patch +++ b/patches/node/pass_all_globals_through_require.patch @@ -6,7 +6,7 @@ Subject: Pass all globals through "require" (cherry picked from commit 7d015419cb7a0ecfe6728431a4ed2056cd411d62) diff --git a/lib/internal/modules/cjs/loader.js b/lib/internal/modules/cjs/loader.js -index 88bb870a8fd2e5458cd47f76dc88b952de6c0303..4aa672675b5cf16b609d81d360e8be8c1a345bd8 100644 +index 19a7d7e671f5abfa55b62290dcf3796a2c4e9013..3161afa33889f1682a1689e76fbcadc397f4b01c 100644 --- a/lib/internal/modules/cjs/loader.js +++ b/lib/internal/modules/cjs/loader.js @@ -142,6 +142,13 @@ const { @@ -23,7 +23,7 @@ index 88bb870a8fd2e5458cd47f76dc88b952de6c0303..4aa672675b5cf16b609d81d360e8be8c const { isProxy, } = require('internal/util/types'); -@@ -1251,10 +1258,12 @@ Module.prototype._compile = function(content, filename) { +@@ -1236,10 +1243,12 @@ Module.prototype._compile = function(content, filename) { if (requireDepth === 0) statCache = new SafeMap(); if (inspectorWrapper) { result = inspectorWrapper(compiledWrapper, thisValue, exports, diff --git a/patches/node/refactor_alter_child_process_fork_to_use_execute_script_with.patch b/patches/node/refactor_alter_child_process_fork_to_use_execute_script_with.patch index c297ff6f68385..ea4b6034079a0 100644 --- a/patches/node/refactor_alter_child_process_fork_to_use_execute_script_with.patch +++ b/patches/node/refactor_alter_child_process_fork_to_use_execute_script_with.patch @@ -7,7 +7,7 @@ Subject: refactor: alter child_process.fork to use execute script with When forking a child script, we setup a special environment to make the Electron binary run like the upstream node. On Mac, we use the helper app as node binary. diff --git a/lib/child_process.js b/lib/child_process.js -index 5bdc474c80169cb0ceeb082e6afcf9e8fa322ab3..ec39a00ddb791e6e1ebe31aa45d290e7dcc4ebfc 100644 +index 449013906e93e59568a90264d5372a3962db6cb0..9dd33ecbac3a5d516f9bff76fdbe1a8aece531f2 100644 --- a/lib/child_process.js +++ b/lib/child_process.js @@ -139,6 +139,14 @@ function fork(modulePath, args = [], options) { diff --git a/patches/node/support_v8_sandboxed_pointers.patch b/patches/node/support_v8_sandboxed_pointers.patch index 59eb20f335d6e..739dcf68cf9e3 100644 --- a/patches/node/support_v8_sandboxed_pointers.patch +++ b/patches/node/support_v8_sandboxed_pointers.patch @@ -7,10 +7,10 @@ This refactors several allocators to allocate within the V8 memory cage, allowing them to be compatible with the V8_SANDBOXED_POINTERS feature. diff --git a/src/api/environment.cc b/src/api/environment.cc -index 7ef6d04794c31064c70dbbb0bfc1dd7bf4d1b8fc..d5a03d5e10faaa204b3f9f290fed79be824c78b1 100644 +index 035f495687856b0cfbcc4e87ba6e90d56c99e837..c02906eacd90ac27d618e7578d1f928f16a858f7 100644 --- a/src/api/environment.cc +++ b/src/api/environment.cc -@@ -87,6 +87,14 @@ MaybeLocal PrepareStackTraceCallback(Local context, +@@ -101,6 +101,14 @@ MaybeLocal PrepareStackTraceCallback(Local context, return result; } @@ -26,10 +26,10 @@ index 7ef6d04794c31064c70dbbb0bfc1dd7bf4d1b8fc..d5a03d5e10faaa204b3f9f290fed79be void* ret; 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 -index 2302e3bad99625eb5dd5587218d0a1985837fb8e..1aa2aafafdae1d2a1b2c851db59e3d736fb8bd3e 100644 +index 3034b114e081e2b32dd5b71653927a41af7d48df..49b0175c219d75dd3a038687f353b2428fbdf62b 100644 --- a/src/crypto/crypto_util.cc +++ b/src/crypto/crypto_util.cc -@@ -349,10 +349,35 @@ ByteSource& ByteSource::operator=(ByteSource&& other) noexcept { +@@ -348,10 +348,35 @@ ByteSource& ByteSource::operator=(ByteSource&& other) noexcept { return *this; } @@ -66,7 +66,7 @@ index 2302e3bad99625eb5dd5587218d0a1985837fb8e..1aa2aafafdae1d2a1b2c851db59e3d73 std::unique_ptr ptr = ArrayBuffer::NewBackingStore( allocated_data_, size(), -@@ -364,10 +389,11 @@ std::unique_ptr ByteSource::ReleaseToBackingStore() { +@@ -363,10 +388,11 @@ std::unique_ptr ByteSource::ReleaseToBackingStore() { data_ = nullptr; size_ = 0; return ptr; @@ -79,7 +79,7 @@ index 2302e3bad99625eb5dd5587218d0a1985837fb8e..1aa2aafafdae1d2a1b2c851db59e3d73 return ArrayBuffer::New(env->isolate(), std::move(store)); } -@@ -696,6 +722,16 @@ namespace { +@@ -702,6 +728,16 @@ namespace { // in which case this has the same semantics as // using OPENSSL_malloc. However, if the secure heap is // initialized, SecureBuffer will automatically use it. @@ -96,7 +96,7 @@ index 2302e3bad99625eb5dd5587218d0a1985837fb8e..1aa2aafafdae1d2a1b2c851db59e3d73 void SecureBuffer(const FunctionCallbackInfo& args) { CHECK(args[0]->IsUint32()); Environment* env = Environment::GetCurrent(args); -@@ -717,6 +753,7 @@ void SecureBuffer(const FunctionCallbackInfo& args) { +@@ -723,6 +759,7 @@ void SecureBuffer(const FunctionCallbackInfo& args) { Local buffer = ArrayBuffer::New(env->isolate(), store); args.GetReturnValue().Set(Uint8Array::New(buffer, 0, len)); } @@ -105,7 +105,7 @@ index 2302e3bad99625eb5dd5587218d0a1985837fb8e..1aa2aafafdae1d2a1b2c851db59e3d73 void SecureHeapUsed(const FunctionCallbackInfo& args) { #ifndef OPENSSL_IS_BORINGSSL diff --git a/src/crypto/crypto_util.h b/src/crypto/crypto_util.h -index bf19334cf61fa497c9325c1d2e996a16545f1b7f..333039b3b7cdf29e911a9c09932b2588d4cccf1a 100644 +index 1ce5f35a70a7c855796cc96d4201cc996907cf8f..be700c953d55b35bd2fee7fd872efd9ed2600c63 100644 --- a/src/crypto/crypto_util.h +++ b/src/crypto/crypto_util.h @@ -280,7 +280,7 @@ class ByteSource { @@ -118,10 +118,10 @@ index bf19334cf61fa497c9325c1d2e996a16545f1b7f..333039b3b7cdf29e911a9c09932b2588 v8::Local ToArrayBuffer(Environment* env); diff --git a/src/node_i18n.cc b/src/node_i18n.cc -index bb810632ee6617759d9cbd24c84a5d1a3a6081aa..3faf9840eddf2db993baef0866bc8854b49c0700 100644 +index d45325954d980724f80d49298bbe837197237a9b..ccea18080142bd9cba3765dbbec61c2a63406667 100644 --- a/src/node_i18n.cc +++ b/src/node_i18n.cc -@@ -104,7 +104,7 @@ namespace { +@@ -105,7 +105,7 @@ namespace { template MaybeLocal ToBufferEndian(Environment* env, MaybeStackBuffer* buf) { @@ -131,7 +131,7 @@ index bb810632ee6617759d9cbd24c84a5d1a3a6081aa..3faf9840eddf2db993baef0866bc8854 return ret; diff --git a/src/node_internals.h b/src/node_internals.h -index 427cfab4eebcab0aed33e42915f4a0e5a9db7cdf..d174b2720b0b2561ebe30437df609e0366388527 100644 +index d7f78664615fcfca6ed7404f940906c148a5e02c..35d76aaa69abfaca18421f12aa1ff78297b8f93f 100644 --- a/src/node_internals.h +++ b/src/node_internals.h @@ -102,7 +102,9 @@ v8::Maybe InitializePrimordials(v8::Local context); @@ -155,7 +155,7 @@ index 427cfab4eebcab0aed33e42915f4a0e5a9db7cdf..d174b2720b0b2561ebe30437df609e03 // Delegate to V8's allocator for compatibility with the V8 memory cage. diff --git a/src/node_serdes.cc b/src/node_serdes.cc -index 6864f2d88b34abfa4090780d6993684cd0b366a3..0249574c4431fb5b98852699f1368f71b49691c1 100644 +index 6698a1df81cb4e0947c86fb30c2d77fca8e2d9d1..dad297652b347819805b09fbfd869f1d037e31c1 100644 --- a/src/node_serdes.cc +++ b/src/node_serdes.cc @@ -29,6 +29,11 @@ using v8::ValueSerializer; diff --git a/patches/node/test_fix_edge_snapshot_stack_traces.patch b/patches/node/test_fix_edge_snapshot_stack_traces.patch index d088a8a9be074..c7eed915f57af 100644 --- a/patches/node/test_fix_edge_snapshot_stack_traces.patch +++ b/patches/node/test_fix_edge_snapshot_stack_traces.patch @@ -29,7 +29,7 @@ index 838ee86f74ea89e052676a5c25e23481369857fa..3aacfa064561c64c218fcc4e3090f795 replaceStackTrace, replaceWindowsLineEndings, diff --git a/test/fixtures/errors/force_colors.snapshot b/test/fixtures/errors/force_colors.snapshot -index 4c33acbc2d5c12ac8750b72e0796284176af3da2..21410d492db861876ecfcb82dcc3c1815cba6d09 100644 +index be1d45d0d8e8ba7b637754e32fe379cb2cf1e6ac..21410d492db861876ecfcb82dcc3c1815cba6d09 100644 --- a/test/fixtures/errors/force_colors.snapshot +++ b/test/fixtures/errors/force_colors.snapshot @@ -4,11 +4,12 @@ throw new Error('Should include grayed stack trace') @@ -106,7 +106,7 @@ index b08bcd40cdf26093e158c0bb9ae566c76f2c731e..bf8eacbac479a2bf5698ed29ede648e1 for (const { name, transform = defaultTransform, env, skip = false } of tests) { it(name, { skip }, async () => { diff --git a/test/parallel/test-node-output-sourcemaps.mjs b/test/parallel/test-node-output-sourcemaps.mjs -index 8e43947ab2188f087056eab39d0e1a11481f9da5..c53a0598958e4e386db1993caeb312dae3f302a8 100644 +index 2043fa57f06a8d2326a4ea1ba24341502c8b7471..b01f30765c7de81a4d956b9c1124affea0fc2aef 100644 --- a/test/parallel/test-node-output-sourcemaps.mjs +++ b/test/parallel/test-node-output-sourcemaps.mjs @@ -4,10 +4,6 @@ import * as snapshot from '../common/assertSnapshot.js'; diff --git a/patches/node/test_formally_mark_some_tests_as_flaky.patch b/patches/node/test_formally_mark_some_tests_as_flaky.patch index e7ae9e776a5b9..1849183e973e8 100644 --- a/patches/node/test_formally_mark_some_tests_as_flaky.patch +++ b/patches/node/test_formally_mark_some_tests_as_flaky.patch @@ -25,7 +25,7 @@ index fe8ddee7cbf05e0d4dbbe970cdc357ec6841390c..1ba65e26d293e9524e6c756b3a66693d [$system==win32] # https://github.com/nodejs/node/issues/41206 diff --git a/test/sequential/sequential.status b/test/sequential/sequential.status -index 0688f5b05e789c15f2c9fc4c9e1a20cd5d1ba8be..64dc814fd24f3e6d90f246a4e66531696eab03cd 100644 +index 5cefcb95773bedc80bc462e058a11045be176741..33f50be5898754af696468499bcfa8e3c721434d 100644 --- a/test/sequential/sequential.status +++ b/test/sequential/sequential.status @@ -7,6 +7,18 @@ prefix sequential diff --git a/patches/node/win_process_avoid_assert_after_spawning_store_app_4152.patch b/patches/node/win_process_avoid_assert_after_spawning_store_app_4152.patch index 5f0178fb5f56c..ff3ed47f1d9db 100644 --- a/patches/node/win_process_avoid_assert_after_spawning_store_app_4152.patch +++ b/patches/node/win_process_avoid_assert_after_spawning_store_app_4152.patch @@ -18,10 +18,10 @@ as launch more jobs or exit). Fixes: https://github.com/JuliaLang/julia/issues/51461 diff --git a/deps/uv/src/win/process.c b/deps/uv/src/win/process.c -index 24c633393fd15dcf87726b174d6b027a969e0f0d..4ad9fec900fa66b0e8c6894701e94f420de903a8 100644 +index 3e451e2291d6ed200ec258e874becbbea22bbc27..a71a08bdd60166ef1d4ef490ff3e083b44188852 100644 --- a/deps/uv/src/win/process.c +++ b/deps/uv/src/win/process.c -@@ -102,6 +102,21 @@ static void uv__init_global_job_handle(void) { +@@ -105,6 +105,21 @@ static void uv__init_global_job_handle(void) { &info, sizeof info)) uv_fatal_error(GetLastError(), "SetInformationJobObject"); @@ -43,7 +43,7 @@ index 24c633393fd15dcf87726b174d6b027a969e0f0d..4ad9fec900fa66b0e8c6894701e94f42 } -@@ -1098,6 +1113,7 @@ int uv_spawn(uv_loop_t* loop, +@@ -1102,6 +1117,7 @@ int uv_spawn(uv_loop_t* loop, * breakaway. */ process_flags |= DETACHED_PROCESS | CREATE_NEW_PROCESS_GROUP; @@ -51,7 +51,7 @@ index 24c633393fd15dcf87726b174d6b027a969e0f0d..4ad9fec900fa66b0e8c6894701e94f42 } if (!CreateProcessW(application_path, -@@ -1115,11 +1131,6 @@ int uv_spawn(uv_loop_t* loop, +@@ -1119,11 +1135,6 @@ int uv_spawn(uv_loop_t* loop, goto done; } @@ -63,7 +63,7 @@ index 24c633393fd15dcf87726b174d6b027a969e0f0d..4ad9fec900fa66b0e8c6894701e94f42 /* If the process isn't spawned as detached, assign to the global job object * so windows will kill it when the parent process dies. */ if (!(options->flags & UV_PROCESS_DETACHED)) { -@@ -1142,6 +1153,19 @@ int uv_spawn(uv_loop_t* loop, +@@ -1146,6 +1157,19 @@ int uv_spawn(uv_loop_t* loop, } }