diff --git a/DEPS b/DEPS index 7e23ffa4eb77e0..37f92aa36346c2 100644 --- a/DEPS +++ b/DEPS @@ -4,7 +4,7 @@ vars = { 'chromium_version': '110.0.5415.0', 'node_version': - 'v18.10.0', + 'v18.12.1', 'nan_version': '16fa32231e2ccd89d2804b3f765319128b20c4ac', 'squirrel.mac_version': diff --git a/patches/node/.patches b/patches/node/.patches index e276c698a7a428..8fc5d46fc62b80 100644 --- a/patches/node/.patches +++ b/patches/node/.patches @@ -50,3 +50,4 @@ api_pass_oomdetails_to_oomerrorcallback.patch src_iwyu_in_cleanup_queue_cc.patch fix_expose_lookupandcompile_with_parameters.patch fix_prevent_changing_functiontemplateinfo_after_publish.patch +chore_add_missing_algorithm_include.patch diff --git a/patches/node/be_compatible_with_cppgc.patch b/patches/node/be_compatible_with_cppgc.patch index 0ff406d305a26e..41865ab290ea52 100644 --- a/patches/node/be_compatible_with_cppgc.patch +++ b/patches/node/be_compatible_with_cppgc.patch @@ -46,7 +46,7 @@ This patch should be upstreamed to Node. See also: https://source.chromium.org/chromium/chromium/src/+/main:v8/include/v8-cppgc.h;l=70-76;drc=5a758a97032f0b656c3c36a3497560762495501a diff --git a/src/base_object.h b/src/base_object.h -index a17879be5b452aa208caf1b29c86f8e5d9baa693..c48d7a7e9d0535cabb4eb84b5700d0cf537ddc88 100644 +index 74af3c952748661c2106be9082dd8cf0f9d3b09a..3a48235fc310d7487fd8f371a4bb791d00872d39 100644 --- a/src/base_object.h +++ b/src/base_object.h @@ -40,7 +40,7 @@ class TransferData; diff --git a/patches/node/build_add_gn_build_files.patch b/patches/node/build_add_gn_build_files.patch index 39af302fc0d548..ac7432b31ab80b 100644 --- a/patches/node/build_add_gn_build_files.patch +++ b/patches/node/build_add_gn_build_files.patch @@ -1192,10 +1192,10 @@ index 0000000000000000000000000000000000000000..2c9d2826c85bdd033f1df1d6188df636 +} diff --git a/filenames.json b/filenames.json new file mode 100644 -index 0000000000000000000000000000000000000000..da2056ec2ab06924d64a3028646d983824263778 +index 0000000000000000000000000000000000000000..b445ccdd7ba2f0b5661d4761f995a4c9b477239e --- /dev/null +++ b/filenames.json -@@ -0,0 +1,635 @@ +@@ -0,0 +1,638 @@ +// This file is automatically generated by generate_gn_filenames_json.py +// DO NOT EDIT +{ @@ -1319,294 +1319,297 @@ index 0000000000000000000000000000000000000000..da2056ec2ab06924d64a3028646d9838 + } + ], + "library_files": [ -+ "lib/constants.js", -+ "lib/net.js", -+ "lib/trace_events.js", -+ "lib/events.js", -+ "lib/repl.js", -+ "lib/util.js", -+ "lib/dgram.js", -+ "lib/vm.js", -+ "lib/stream.js", -+ "lib/child_process.js", -+ "lib/assert.js", -+ "lib/_tls_wrap.js", -+ "lib/test.js", -+ "lib/http2.js", -+ "lib/inspector.js", -+ "lib/os.js", -+ "lib/_http_server.js", -+ "lib/console.js", -+ "lib/perf_hooks.js", -+ "lib/readline.js", -+ "lib/punycode.js", -+ "lib/_http_incoming.js", -+ "lib/https.js", -+ "lib/_stream_wrap.js", -+ "lib/domain.js", -+ "lib/dns.js", -+ "lib/_http_client.js", -+ "lib/diagnostics_channel.js", -+ "lib/tty.js", + "lib/_http_agent.js", -+ "lib/timers.js", ++ "lib/_http_client.js", ++ "lib/_http_common.js", ++ "lib/_http_incoming.js", + "lib/_http_outgoing.js", -+ "lib/querystring.js", -+ "lib/_tls_common.js", -+ "lib/module.js", -+ "lib/_stream_passthrough.js", -+ "lib/_stream_transform.js", -+ "lib/worker_threads.js", -+ "lib/sys.js", ++ "lib/_http_server.js", + "lib/_stream_duplex.js", -+ "lib/path.js", -+ "lib/_http_common.js", -+ "lib/string_decoder.js", -+ "lib/cluster.js", -+ "lib/v8.js", -+ "lib/crypto.js", -+ "lib/wasi.js", ++ "lib/_stream_passthrough.js", + "lib/_stream_readable.js", -+ "lib/zlib.js", -+ "lib/url.js", -+ "lib/tls.js", ++ "lib/_stream_transform.js", ++ "lib/_stream_wrap.js", + "lib/_stream_writable.js", ++ "lib/_tls_common.js", ++ "lib/_tls_wrap.js", ++ "lib/assert.js", ++ "lib/assert/strict.js", + "lib/async_hooks.js", -+ "lib/process.js", -+ "lib/http.js", + "lib/buffer.js", ++ "lib/child_process.js", ++ "lib/cluster.js", ++ "lib/console.js", ++ "lib/constants.js", ++ "lib/crypto.js", ++ "lib/dgram.js", ++ "lib/diagnostics_channel.js", ++ "lib/dns.js", ++ "lib/dns/promises.js", ++ "lib/domain.js", ++ "lib/events.js", + "lib/fs.js", -+ "lib/util/types.js", -+ "lib/timers/promises.js", -+ "lib/path/win32.js", -+ "lib/path/posix.js", -+ "lib/stream/consumers.js", -+ "lib/stream/promises.js", -+ "lib/stream/web.js", -+ "lib/readline/promises.js", -+ "lib/internal/constants.js", ++ "lib/fs/promises.js", ++ "lib/http.js", ++ "lib/http2.js", ++ "lib/https.js", ++ "lib/inspector.js", + "lib/internal/abort_controller.js", -+ "lib/internal/net.js", -+ "lib/internal/v8_prof_processor.js", -+ "lib/internal/event_target.js", -+ "lib/internal/inspector_async_hook.js", -+ "lib/internal/validators.js", -+ "lib/internal/linkedlist.js", -+ "lib/internal/cli_table.js", -+ "lib/internal/repl.js", -+ "lib/internal/util.js", -+ "lib/internal/histogram.js", -+ "lib/internal/error_serdes.js", -+ "lib/internal/dgram.js", -+ "lib/internal/structured_clone.js", -+ "lib/internal/child_process.js", + "lib/internal/assert.js", -+ "lib/internal/fixed_queue.js", -+ "lib/internal/blocklist.js", -+ "lib/internal/v8_prof_polyfill.js", -+ "lib/internal/options.js", -+ "lib/internal/worker.js", -+ "lib/internal/dtrace.js", -+ "lib/internal/idna.js", -+ "lib/internal/watchdog.js", -+ "lib/internal/encoding.js", -+ "lib/internal/tty.js", -+ "lib/internal/freeze_intrinsics.js", -+ "lib/internal/timers.js", -+ "lib/internal/heap_utils.js", -+ "lib/internal/querystring.js", -+ "lib/internal/js_stream_socket.js", -+ "lib/internal/errors.js", -+ "lib/internal/priority_queue.js", -+ "lib/internal/freelist.js", -+ "lib/internal/blob.js", -+ "lib/internal/socket_list.js", -+ "lib/internal/socketaddress.js", -+ "lib/internal/promise_hooks.js", -+ "lib/internal/stream_base_commons.js", -+ "lib/internal/url.js", ++ "lib/internal/assert/assertion_error.js", ++ "lib/internal/assert/calltracker.js", ++ "lib/internal/assert/snapshot.js", + "lib/internal/async_hooks.js", -+ "lib/internal/wasm_web_api.js", -+ "lib/internal/http.js", ++ "lib/internal/blob.js", ++ "lib/internal/blocklist.js", ++ "lib/internal/bootstrap/browser.js", ++ "lib/internal/bootstrap/loaders.js", ++ "lib/internal/bootstrap/node.js", ++ "lib/internal/bootstrap/switches/does_not_own_process_state.js", ++ "lib/internal/bootstrap/switches/does_own_process_state.js", ++ "lib/internal/bootstrap/switches/is_main_thread.js", ++ "lib/internal/bootstrap/switches/is_not_main_thread.js", + "lib/internal/buffer.js", -+ "lib/internal/trace_events_async_hooks.js", -+ "lib/internal/v8/startup_snapshot.js", -+ "lib/internal/test_runner/test.js", -+ "lib/internal/test_runner/runner.js", -+ "lib/internal/test_runner/harness.js", -+ "lib/internal/test_runner/utils.js", -+ "lib/internal/test_runner/tap_stream.js", -+ "lib/internal/crypto/sig.js", -+ "lib/internal/crypto/rsa.js", ++ "lib/internal/child_process.js", ++ "lib/internal/child_process/serialization.js", ++ "lib/internal/cli_table.js", ++ "lib/internal/cluster/child.js", ++ "lib/internal/cluster/primary.js", ++ "lib/internal/cluster/round_robin_handle.js", ++ "lib/internal/cluster/shared_handle.js", ++ "lib/internal/cluster/utils.js", ++ "lib/internal/cluster/worker.js", ++ "lib/internal/console/constructor.js", ++ "lib/internal/console/global.js", ++ "lib/internal/constants.js", + "lib/internal/crypto/aes.js", -+ "lib/internal/crypto/util.js", -+ "lib/internal/crypto/scrypt.js", -+ "lib/internal/crypto/random.js", -+ "lib/internal/crypto/keys.js", -+ "lib/internal/crypto/cfrg.js", -+ "lib/internal/crypto/x509.js", + "lib/internal/crypto/certificate.js", ++ "lib/internal/crypto/cfrg.js", ++ "lib/internal/crypto/cipher.js", ++ "lib/internal/crypto/diffiehellman.js", + "lib/internal/crypto/ec.js", ++ "lib/internal/crypto/hash.js", ++ "lib/internal/crypto/hashnames.js", ++ "lib/internal/crypto/hkdf.js", + "lib/internal/crypto/keygen.js", ++ "lib/internal/crypto/keys.js", + "lib/internal/crypto/mac.js", -+ "lib/internal/crypto/diffiehellman.js", -+ "lib/internal/crypto/hkdf.js", -+ "lib/internal/crypto/cipher.js", -+ "lib/internal/crypto/hash.js", + "lib/internal/crypto/pbkdf2.js", ++ "lib/internal/crypto/random.js", ++ "lib/internal/crypto/rsa.js", ++ "lib/internal/crypto/scrypt.js", ++ "lib/internal/crypto/sig.js", ++ "lib/internal/crypto/util.js", + "lib/internal/crypto/webcrypto.js", -+ "lib/internal/crypto/hashnames.js", -+ "lib/internal/cluster/shared_handle.js", -+ "lib/internal/cluster/round_robin_handle.js", -+ "lib/internal/cluster/worker.js", -+ "lib/internal/cluster/primary.js", -+ "lib/internal/cluster/utils.js", -+ "lib/internal/cluster/child.js", -+ "lib/internal/webstreams/compression.js", -+ "lib/internal/webstreams/util.js", -+ "lib/internal/webstreams/writablestream.js", -+ "lib/internal/webstreams/readablestream.js", -+ "lib/internal/webstreams/queuingstrategies.js", -+ "lib/internal/webstreams/encoding.js", -+ "lib/internal/webstreams/transformstream.js", -+ "lib/internal/webstreams/adapters.js", -+ "lib/internal/webstreams/transfer.js", -+ "lib/internal/bootstrap/loaders.js", -+ "lib/internal/bootstrap/node.js", -+ "lib/internal/bootstrap/browser.js", -+ "lib/internal/bootstrap/switches/does_not_own_process_state.js", -+ "lib/internal/bootstrap/switches/is_not_main_thread.js", -+ "lib/internal/bootstrap/switches/does_own_process_state.js", -+ "lib/internal/bootstrap/switches/is_main_thread.js", -+ "lib/internal/test/binding.js", -+ "lib/internal/test/transfer.js", -+ "lib/internal/util/types.js", -+ "lib/internal/util/inspector.js", -+ "lib/internal/util/comparisons.js", -+ "lib/internal/util/debuglog.js", -+ "lib/internal/util/inspect.js", -+ "lib/internal/util/iterable_weak_map.js", -+ "lib/internal/util/parse_args/utils.js", -+ "lib/internal/util/parse_args/parse_args.js", -+ "lib/internal/streams/add-abort-signal.js", -+ "lib/internal/streams/compose.js", -+ "lib/internal/streams/duplexify.js", -+ "lib/internal/streams/destroy.js", -+ "lib/internal/streams/legacy.js", -+ "lib/internal/streams/passthrough.js", -+ "lib/internal/streams/operators.js", -+ "lib/internal/streams/readable.js", -+ "lib/internal/streams/from.js", -+ "lib/internal/streams/writable.js", -+ "lib/internal/streams/state.js", -+ "lib/internal/streams/buffer_list.js", -+ "lib/internal/streams/end-of-stream.js", -+ "lib/internal/streams/utils.js", -+ "lib/internal/streams/transform.js", -+ "lib/internal/streams/lazy_transform.js", -+ "lib/internal/streams/duplex.js", -+ "lib/internal/streams/pipeline.js", -+ "lib/internal/readline/interface.js", -+ "lib/internal/readline/promises.js", -+ "lib/internal/readline/utils.js", -+ "lib/internal/readline/emitKeypressEvents.js", -+ "lib/internal/readline/callbacks.js", -+ "lib/internal/repl/history.js", -+ "lib/internal/repl/utils.js", -+ "lib/internal/repl/await.js", -+ "lib/internal/legacy/processbinding.js", -+ "lib/internal/assert/calltracker.js", -+ "lib/internal/assert/snapshot.js", -+ "lib/internal/assert/assertion_error.js", -+ "lib/internal/http2/util.js", -+ "lib/internal/http2/core.js", -+ "lib/internal/http2/compat.js", -+ "lib/internal/per_context/messageport.js", -+ "lib/internal/per_context/primordials.js", -+ "lib/internal/per_context/domexception.js", -+ "lib/internal/vm/module.js", -+ "lib/internal/tls/secure-pair.js", -+ "lib/internal/tls/secure-context.js", -+ "lib/internal/child_process/serialization.js", -+ "lib/internal/debugger/inspect_repl.js", -+ "lib/internal/debugger/inspect_client.js", ++ "lib/internal/crypto/x509.js", + "lib/internal/debugger/inspect.js", -+ "lib/internal/worker/io.js", -+ "lib/internal/worker/js_transferable.js", -+ "lib/internal/main/repl.js", -+ "lib/internal/main/print_help.js", -+ "lib/internal/main/eval_string.js", ++ "lib/internal/debugger/inspect_client.js", ++ "lib/internal/debugger/inspect_repl.js", ++ "lib/internal/dgram.js", ++ "lib/internal/dns/callback_resolver.js", ++ "lib/internal/dns/promises.js", ++ "lib/internal/dns/utils.js", ++ "lib/internal/dtrace.js", ++ "lib/internal/encoding.js", ++ "lib/internal/error_serdes.js", ++ "lib/internal/errors.js", ++ "lib/internal/event_target.js", ++ "lib/internal/fixed_queue.js", ++ "lib/internal/freelist.js", ++ "lib/internal/freeze_intrinsics.js", ++ "lib/internal/fs/cp/cp-sync.js", ++ "lib/internal/fs/cp/cp.js", ++ "lib/internal/fs/dir.js", ++ "lib/internal/fs/promises.js", ++ "lib/internal/fs/read_file_context.js", ++ "lib/internal/fs/rimraf.js", ++ "lib/internal/fs/streams.js", ++ "lib/internal/fs/sync_write_stream.js", ++ "lib/internal/fs/utils.js", ++ "lib/internal/fs/watchers.js", ++ "lib/internal/heap_utils.js", ++ "lib/internal/histogram.js", ++ "lib/internal/http.js", ++ "lib/internal/http2/compat.js", ++ "lib/internal/http2/core.js", ++ "lib/internal/http2/util.js", ++ "lib/internal/idna.js", ++ "lib/internal/inspector_async_hook.js", ++ "lib/internal/js_stream_socket.js", ++ "lib/internal/legacy/processbinding.js", ++ "lib/internal/linkedlist.js", + "lib/internal/main/check_syntax.js", ++ "lib/internal/main/environment.js", ++ "lib/internal/main/eval_stdin.js", ++ "lib/internal/main/eval_string.js", ++ "lib/internal/main/inspect.js", ++ "lib/internal/main/mksnapshot.js", ++ "lib/internal/main/print_help.js", + "lib/internal/main/prof_process.js", ++ "lib/internal/main/repl.js", ++ "lib/internal/main/run_main_module.js", + "lib/internal/main/test_runner.js", ++ "lib/internal/main/watch_mode.js", + "lib/internal/main/worker_thread.js", -+ "lib/internal/main/mksnapshot.js", -+ "lib/internal/main/inspect.js", -+ "lib/internal/main/eval_stdin.js", -+ "lib/internal/main/run_main_module.js", -+ "lib/internal/main/environment.js", -+ "lib/internal/modules/run_main.js", -+ "lib/internal/modules/package_json_reader.js", -+ "lib/internal/modules/esm/module_job.js", ++ "lib/internal/modules/cjs/helpers.js", ++ "lib/internal/modules/cjs/loader.js", + "lib/internal/modules/esm/assert.js", -+ "lib/internal/modules/esm/fetch_module.js", -+ "lib/internal/modules/esm/translators.js", -+ "lib/internal/modules/esm/resolve.js", + "lib/internal/modules/esm/create_dynamic_module.js", -+ "lib/internal/modules/esm/load.js", ++ "lib/internal/modules/esm/fetch_module.js", ++ "lib/internal/modules/esm/formats.js", ++ "lib/internal/modules/esm/get_format.js", + "lib/internal/modules/esm/handle_process_exit.js", + "lib/internal/modules/esm/initialize_import_meta.js", ++ "lib/internal/modules/esm/load.js", ++ "lib/internal/modules/esm/loader.js", ++ "lib/internal/modules/esm/module_job.js", + "lib/internal/modules/esm/module_map.js", -+ "lib/internal/modules/esm/get_format.js", + "lib/internal/modules/esm/package_config.js", -+ "lib/internal/modules/esm/formats.js", -+ "lib/internal/modules/esm/loader.js", -+ "lib/internal/modules/cjs/helpers.js", -+ "lib/internal/modules/cjs/loader.js", -+ "lib/internal/source_map/source_map.js", -+ "lib/internal/source_map/prepare_stack_trace.js", -+ "lib/internal/source_map/source_map_cache.js", -+ "lib/internal/dns/callback_resolver.js", -+ "lib/internal/dns/promises.js", -+ "lib/internal/dns/utils.js", -+ "lib/internal/fs/watchers.js", -+ "lib/internal/fs/promises.js", -+ "lib/internal/fs/read_file_context.js", -+ "lib/internal/fs/rimraf.js", -+ "lib/internal/fs/sync_write_stream.js", -+ "lib/internal/fs/dir.js", -+ "lib/internal/fs/streams.js", -+ "lib/internal/fs/utils.js", -+ "lib/internal/fs/cp/cp.js", -+ "lib/internal/fs/cp/cp-sync.js", ++ "lib/internal/modules/esm/resolve.js", ++ "lib/internal/modules/esm/translators.js", ++ "lib/internal/modules/package_json_reader.js", ++ "lib/internal/modules/run_main.js", ++ "lib/internal/net.js", ++ "lib/internal/options.js", ++ "lib/internal/per_context/domexception.js", ++ "lib/internal/per_context/messageport.js", ++ "lib/internal/per_context/primordials.js", ++ "lib/internal/perf/event_loop_delay.js", ++ "lib/internal/perf/event_loop_utilization.js", + "lib/internal/perf/nodetiming.js", -+ "lib/internal/perf/usertiming.js", -+ "lib/internal/perf/performance_entry.js", ++ "lib/internal/perf/observe.js", + "lib/internal/perf/performance.js", ++ "lib/internal/perf/performance_entry.js", ++ "lib/internal/perf/resource_timing.js", + "lib/internal/perf/timerify.js", ++ "lib/internal/perf/usertiming.js", + "lib/internal/perf/utils.js", -+ "lib/internal/perf/observe.js", -+ "lib/internal/perf/event_loop_delay.js", -+ "lib/internal/perf/resource_timing.js", -+ "lib/internal/perf/event_loop_utilization.js", + "lib/internal/policy/manifest.js", + "lib/internal/policy/sri.js", -+ "lib/internal/process/task_queues.js", ++ "lib/internal/priority_queue.js", ++ "lib/internal/process/esm_loader.js", ++ "lib/internal/process/execution.js", + "lib/internal/process/per_thread.js", -+ "lib/internal/process/warning.js", + "lib/internal/process/policy.js", -+ "lib/internal/process/promises.js", + "lib/internal/process/pre_execution.js", -+ "lib/internal/process/signal.js", -+ "lib/internal/process/execution.js", -+ "lib/internal/process/esm_loader.js", ++ "lib/internal/process/promises.js", + "lib/internal/process/report.js", ++ "lib/internal/process/signal.js", ++ "lib/internal/process/task_queues.js", ++ "lib/internal/process/warning.js", + "lib/internal/process/worker_thread_only.js", -+ "lib/internal/console/constructor.js", -+ "lib/internal/console/global.js", -+ "lib/assert/strict.js", -+ "lib/dns/promises.js", -+ "lib/fs/promises.js", ++ "lib/internal/promise_hooks.js", ++ "lib/internal/querystring.js", ++ "lib/internal/readline/callbacks.js", ++ "lib/internal/readline/emitKeypressEvents.js", ++ "lib/internal/readline/interface.js", ++ "lib/internal/readline/promises.js", ++ "lib/internal/readline/utils.js", ++ "lib/internal/repl.js", ++ "lib/internal/repl/await.js", ++ "lib/internal/repl/history.js", ++ "lib/internal/repl/utils.js", ++ "lib/internal/socket_list.js", ++ "lib/internal/socketaddress.js", ++ "lib/internal/source_map/prepare_stack_trace.js", ++ "lib/internal/source_map/source_map.js", ++ "lib/internal/source_map/source_map_cache.js", ++ "lib/internal/stream_base_commons.js", ++ "lib/internal/streams/add-abort-signal.js", ++ "lib/internal/streams/buffer_list.js", ++ "lib/internal/streams/compose.js", ++ "lib/internal/streams/destroy.js", ++ "lib/internal/streams/duplex.js", ++ "lib/internal/streams/duplexify.js", ++ "lib/internal/streams/end-of-stream.js", ++ "lib/internal/streams/from.js", ++ "lib/internal/streams/lazy_transform.js", ++ "lib/internal/streams/legacy.js", ++ "lib/internal/streams/operators.js", ++ "lib/internal/streams/passthrough.js", ++ "lib/internal/streams/pipeline.js", ++ "lib/internal/streams/readable.js", ++ "lib/internal/streams/state.js", ++ "lib/internal/streams/transform.js", ++ "lib/internal/streams/utils.js", ++ "lib/internal/streams/writable.js", ++ "lib/internal/structured_clone.js", ++ "lib/internal/test/binding.js", ++ "lib/internal/test/transfer.js", ++ "lib/internal/test_runner/harness.js", ++ "lib/internal/test_runner/runner.js", ++ "lib/internal/test_runner/tap_stream.js", ++ "lib/internal/test_runner/test.js", ++ "lib/internal/test_runner/utils.js", ++ "lib/internal/timers.js", ++ "lib/internal/tls/secure-context.js", ++ "lib/internal/tls/secure-pair.js", ++ "lib/internal/trace_events_async_hooks.js", ++ "lib/internal/tty.js", ++ "lib/internal/url.js", ++ "lib/internal/util.js", ++ "lib/internal/util/colors.js", ++ "lib/internal/util/comparisons.js", ++ "lib/internal/util/debuglog.js", ++ "lib/internal/util/inspect.js", ++ "lib/internal/util/inspector.js", ++ "lib/internal/util/iterable_weak_map.js", ++ "lib/internal/util/parse_args/parse_args.js", ++ "lib/internal/util/parse_args/utils.js", ++ "lib/internal/util/types.js", ++ "lib/internal/v8/startup_snapshot.js", ++ "lib/internal/v8_prof_polyfill.js", ++ "lib/internal/v8_prof_processor.js", ++ "lib/internal/validators.js", ++ "lib/internal/vm/module.js", ++ "lib/internal/wasm_web_api.js", ++ "lib/internal/watch_mode/files_watcher.js", ++ "lib/internal/watchdog.js", ++ "lib/internal/webstreams/adapters.js", ++ "lib/internal/webstreams/compression.js", ++ "lib/internal/webstreams/encoding.js", ++ "lib/internal/webstreams/queuingstrategies.js", ++ "lib/internal/webstreams/readablestream.js", ++ "lib/internal/webstreams/transfer.js", ++ "lib/internal/webstreams/transformstream.js", ++ "lib/internal/webstreams/util.js", ++ "lib/internal/webstreams/writablestream.js", ++ "lib/internal/worker.js", ++ "lib/internal/worker/io.js", ++ "lib/internal/worker/js_transferable.js", ++ "lib/module.js", ++ "lib/net.js", ++ "lib/os.js", ++ "lib/path.js", ++ "lib/path/posix.js", ++ "lib/path/win32.js", ++ "lib/perf_hooks.js", ++ "lib/process.js", ++ "lib/punycode.js", ++ "lib/querystring.js", ++ "lib/readline.js", ++ "lib/readline/promises.js", ++ "lib/repl.js", ++ "lib/stream.js", ++ "lib/stream/consumers.js", ++ "lib/stream/promises.js", ++ "lib/stream/web.js", ++ "lib/string_decoder.js", ++ "lib/sys.js", ++ "lib/test.js", ++ "lib/timers.js", ++ "lib/timers/promises.js", ++ "lib/tls.js", ++ "lib/trace_events.js", ++ "lib/tty.js", ++ "lib/url.js", ++ "lib/util.js", ++ "lib/util/types.js", ++ "lib/v8.js", ++ "lib/vm.js", ++ "lib/wasi.js", ++ "lib/worker_threads.js", ++ "lib/zlib.js", + "//v8/tools/splaytree.mjs", + "//v8/tools/codemap.mjs", + "//v8/tools/consarray.mjs", @@ -2072,7 +2075,7 @@ index 0000000000000000000000000000000000000000..d1d6b51e8c0c5bc6a5d09e217eb30483 + args = rebase_path(inputs + outputs, root_build_dir) +} diff --git a/src/node_version.h b/src/node_version.h -index 5403dd847814737132dfd004daddee0efc1bc34d..eba54c354ae930ce957a150bc52d78c4dc6b8322 100644 +index 68c7df653ebb84d9e0c5d34a1cfa4fa3bd4ce690..2762b9f8ae782518ecc9c21f09880c10025155aa 100644 --- a/src/node_version.h +++ b/src/node_version.h @@ -89,7 +89,10 @@ 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 854eaec1d9f687..9329a6428538e2 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 @@ -52,7 +52,7 @@ index 1b7a721585764aecfd855ee47c47a3bd235d2ef3..c152ea9f29478729ec3752132140e3ec 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 4966df8d4dd0726ba0777b5b8f2f1bfc3071d951..30cfd68159be7f4e22da463ccac5e9bc5ac6e6dd 100644 +index 10061d4298368bc0ad53c0c8c3a3c964c13d4c3c..bee494f9da8470530ee9ec58958f8f2c7ce6a302 100644 --- a/src/node.h +++ b/src/node.h @@ -22,6 +22,12 @@ diff --git a/patches/node/chore_add_missing_algorithm_include.patch b/patches/node/chore_add_missing_algorithm_include.patch new file mode 100644 index 00000000000000..737ebff808e45b --- /dev/null +++ b/patches/node/chore_add_missing_algorithm_include.patch @@ -0,0 +1,20 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: John Kleinschmidt +Date: Wed, 16 Nov 2022 16:58:45 -0500 +Subject: chore: add missing include + +https://github.com/nodejs/node/commit/4124b037743abb8f80a9d4b78a3b3f6aa64a18f9 added a call +to std::all_of, but did not add the needed header include. + +diff --git a/src/inspector_socket.cc b/src/inspector_socket.cc +index 8001d893e1fdcc339d8c766c3dd2c5155b36e8cc..c7331567581be1ef884982cd4a166113f9d2fd09 100644 +--- a/src/inspector_socket.cc ++++ b/src/inspector_socket.cc +@@ -6,6 +6,7 @@ + + #include "openssl/sha.h" // Sha-1 hash + ++#include + #include + #include + 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 7f09d38e5c4c99..3dfac5ae7e178f 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 4b592b0f7d9d481ee746b4e6db07620a27284f17..79b21e33ebf5849d83f462374905357d244224b0 100644 +index 5ea58cdbf5b1caa41ff3d1c7f4569d112974425f..e1ac301e6af0d185964e277195b7ff207b950bc4 100644 --- a/lib/internal/modules/cjs/loader.js +++ b/lib/internal/modules/cjs/loader.js -@@ -1123,6 +1123,13 @@ Module.prototype._compile = function(content, filename) { +@@ -1133,6 +1133,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. diff --git a/patches/node/enable_-wunqualified-std-cast-call.patch b/patches/node/enable_-wunqualified-std-cast-call.patch index a40710debc227a..45b3e5daf82b53 100644 --- a/patches/node/enable_-wunqualified-std-cast-call.patch +++ b/patches/node/enable_-wunqualified-std-cast-call.patch @@ -7,7 +7,7 @@ Refs https://chromium-review.googlesource.com/c/chromium/src/+/3825237 Should be upstreamed. diff --git a/src/node_http2.cc b/src/node_http2.cc -index 7a1e751929286d97c663c6feea133dae08126684..a1908f9b54807ce73daf775d9745234a27650c72 100644 +index cb44e3aec2e8e2a0abbf8ce5d7e536787a9e2fb8..61009d8001920454fcc5f3cca080826f6175a092 100644 --- a/src/node_http2.cc +++ b/src/node_http2.cc @@ -644,7 +644,7 @@ void Http2Stream::EmitStatistics() { 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 69859135d8ff1d..8ba8177c148ef7 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 cbe4b734b1c0cc88683c8bc27a4e89d7a1583b22..b2fcaa091924606da5604d194dcb7e445fa736b3 100644 +index e38531800e741b40e829d9c14f77557d43fd98f7..5e3d42c53d0e531cdbf947e02f655a844925b6bb 100644 --- a/src/env-inl.h +++ b/src/env-inl.h -@@ -671,6 +671,10 @@ inline bool Environment::no_global_search_paths() const { +@@ -672,6 +672,10 @@ inline bool Environment::no_global_search_paths() const { !options_->global_search_paths; } @@ -34,10 +34,10 @@ index 59dd7c8d9e172493d79be21079598a08629be128..417f0b3657cb068e7708cbeb787f8cb1 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 34bb11e7d7122cd2c659d45834be6889abec4ac1..f708933d8bd6a6dc6741d6af22665b37c56e333a 100644 +index 9ee779fb597b423573aa0d932c151289721087c4..14311237384c023ce6759d31c1db7c09eb521ab7 100644 --- a/src/inspector_agent.cc +++ b/src/inspector_agent.cc -@@ -690,8 +690,10 @@ bool Agent::Start(const std::string& path, +@@ -693,8 +693,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 34bb11e7d7122cd2c659d45834be6889abec4ac1..f708933d8bd6a6dc6741d6af22665b37 parent_env_->AddCleanupHook([](void* data) { Environment* env = static_cast(data); diff --git a/src/node.h b/src/node.h -index a6407dd1e78c8fa86dfc2a6c40813b1b4d6a6829..4966df8d4dd0726ba0777b5b8f2f1bfc3071d951 100644 +index c3da0c8be37fb0983bd389fc7466ab85a21afbda..10061d4298368bc0ad53c0c8c3a3c964c13d4c3c 100644 --- a/src/node.h +++ b/src/node.h -@@ -458,7 +458,11 @@ enum Flags : uint64_t { +@@ -544,7 +544,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/fix_crypto_tests_to_run_with_bssl.patch b/patches/node/fix_crypto_tests_to_run_with_bssl.patch index d47e1405858f20..377c8b5fa04728 100644 --- a/patches/node/fix_crypto_tests_to_run_with_bssl.patch +++ b/patches/node/fix_crypto_tests_to_run_with_bssl.patch @@ -715,54 +715,63 @@ 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 03f7c209679d9c0c7da4b82bddc45767945b596f..de2e088865743202db322b00f443771121ff6643 100644 +index 510e3183cf3ce367aa6e9cf21ee653feb106a9ba..afb2e07d9e8d60cb37dd07714c810fb8b83df8c3 100644 --- a/test/parallel/test-crypto-x509.js +++ b/test/parallel/test-crypto-x509.js -@@ -110,7 +110,7 @@ const der = Buffer.from( - 'A3:06:C5:CE:43:C1:7F:2D:7E:5F:44:A5:EE:A3:CB:97:05:A3:E3:68' +@@ -109,7 +109,7 @@ const der = Buffer.from( + '5A:42:63:E0:21:2F:D6:70:63:07:96:6F:27:A7:78:12:08:02:7A:8B' ); assert.strictEqual(x509.keyUsage, undefined); -- assert.strictEqual(x509.serialNumber, 'ECC9B856270DA9A8'); -+ assert.match(x509.serialNumber, /ECC9B856270DA9A8/i); +- assert.strictEqual(x509.serialNumber, '147D36C1C2F74206DE9FAB5F2226D78ADB00A426'); ++ assert.match(x509.serialNumber, /147D36C1C2F74206DE9FAB5F2226D78ADB00A426/i); assert.deepStrictEqual(x509.raw, der); -@@ -196,6 +196,12 @@ const der = Buffer.from( +@@ -195,6 +195,16 @@ const der = Buffer.from( }); mc.port2.postMessage(x509); -+ const modulusOSSL = 'EF5440701637E28ABB038E5641F828D834C342A9D25EDBB86A2BF' + -+ '6FBD809CB8E037A98B71708E001242E4DEB54C6164885F599DD87' + -+ 'A23215745955BE20417E33C4D0D1B80C9DA3DE419A2607195D2FB' + -+ '75657B0BBFB5EB7D0BBA5122D1B6964C7B570D50B8EC001EEB68D' + -+ 'FB584437508F3129928D673B30A3E0BF4F50609E6371'; ++ const modulusOSSL = 'D456320AFB20D3827093DC2C4284ED04DFBABD56E1DDAE529E28B790CD42' + ++ '56DB273349F3735FFD337C7A6363ECCA5A27B7F73DC7089A96C6D886DB0C' + ++ '62388F1CDD6A963AFCD599D5800E587A11F908960F84ED50BA25A28303EC' + ++ 'DA6E684FBE7BAEDC9CE8801327B1697AF25097CEE3F175E400984C0DB6A8' + ++ 'EB87BE03B4CF94774BA56FFFC8C63C68D6ADEB60ABBE69A7B14AB6A6B9E7' + ++ 'BAA89B5ADAB8EB07897C07F6D4FA3D660DFF574107D28E8F63467A788624' + ++ 'C574197693E959CEA1362FFAE1BBA10C8C0D88840ABFEF103631B2E8F5C3' + ++ '9B5548A7EA57E8A39F89291813F45A76C448033A2B7ED8403F4BAA147CF3' + ++ '5E2D2554AA65CE49695797095BF4DC6B'; + // Verify that legacy encoding works const legacyObjectCheck = { subject: Object.assign(Object.create(null), { -@@ -220,11 +226,7 @@ const der = Buffer.from( +@@ -219,16 +229,8 @@ const der = Buffer.from( 'OCSP - URI': ['http://ocsp.nodejs.org/'], 'CA Issuers - URI': ['http://ca.nodejs.org/ca.cert'] }), -- modulus: 'EF5440701637E28ABB038E5641F828D834C342A9D25EDBB86A2BF' + -- '6FBD809CB8E037A98B71708E001242E4DEB54C6164885F599DD87' + -- 'A23215745955BE20417E33C4D0D1B80C9DA3DE419A2607195D2FB' + -- '75657B0BBFB5EB7D0BBA5122D1B6964C7B570D50B8EC001EEB68D' + -- 'FB584437508F3129928D673B30A3E0BF4F50609E6371', +- modulus: 'D456320AFB20D3827093DC2C4284ED04DFBABD56E1DDAE529E28B790CD42' + +- '56DB273349F3735FFD337C7A6363ECCA5A27B7F73DC7089A96C6D886DB0C' + +- '62388F1CDD6A963AFCD599D5800E587A11F908960F84ED50BA25A28303EC' + +- 'DA6E684FBE7BAEDC9CE8801327B1697AF25097CEE3F175E400984C0DB6A8' + +- 'EB87BE03B4CF94774BA56FFFC8C63C68D6ADEB60ABBE69A7B14AB6A6B9E7' + +- 'BAA89B5ADAB8EB07897C07F6D4FA3D660DFF574107D28E8F63467A788624' + +- 'C574197693E959CEA1362FFAE1BBA10C8C0D88840ABFEF103631B2E8F5C3' + +- '9B5548A7EA57E8A39F89291813F45A76C448033A2B7ED8403F4BAA147CF3' + +- '5E2D2554AA65CE49695797095BF4DC6B', + bits: 2048, + modulusPattern: new RegExp(modulusOSSL, 'i'), - bits: 1024, exponent: '0x10001', - valid_from: 'Nov 16 18:42:21 2018 GMT', -@@ -238,7 +240,7 @@ const der = Buffer.from( - 'D0:39:97:54:B6:D0:B4:46:5B:DE:13:5B:68:86:B6:F2:A8:' + - '95:22:D5:6E:8B:35:DA:89:29:CA:A3:06:C5:CE:43:C1:7F:' + - '2D:7E:5F:44:A5:EE:A3:CB:97:05:A3:E3:68', -- serialNumber: 'ECC9B856270DA9A8' -+ serialNumberPattern: /ECC9B856270DA9A8/i + valid_from: 'Sep 3 21:40:37 2022 GMT', + valid_to: 'Jun 17 21:40:37 2296 GMT', +@@ -240,7 +242,7 @@ const der = Buffer.from( + '51:62:18:39:E2:E2:77:F5:86:11:E8:C0:CA:54:43:7C:76:83:19:05:D0:03:' + + '24:21:B8:EB:14:61:FB:24:16:EB:BD:51:1A:17:91:04:30:03:EB:68:5F:DC:' + + '86:E1:D1:7C:FB:AF:78:ED:63:5F:29:9C:32:AF:A1:8E:22:96:D1:02', +- serialNumber: '147D36C1C2F74206DE9FAB5F2226D78ADB00A426' ++ serialNumberPattern: /147D36C1C2F74206DE9FAB5F2226D78ADB00A426/i }; const legacyObject = x509.toLegacyObject(); -@@ -247,7 +249,7 @@ const der = Buffer.from( +@@ -249,7 +251,7 @@ const der = Buffer.from( assert.deepStrictEqual(legacyObject.subject, legacyObjectCheck.subject); assert.deepStrictEqual(legacyObject.issuer, legacyObjectCheck.issuer); assert.deepStrictEqual(legacyObject.infoAccess, legacyObjectCheck.infoAccess); @@ -771,7 +780,7 @@ index 03f7c209679d9c0c7da4b82bddc45767945b596f..de2e088865743202db322b00f4437711 assert.strictEqual(legacyObject.bits, legacyObjectCheck.bits); assert.strictEqual(legacyObject.exponent, legacyObjectCheck.exponent); assert.strictEqual(legacyObject.valid_from, legacyObjectCheck.valid_from); -@@ -256,7 +258,7 @@ const der = Buffer.from( +@@ -258,7 +260,7 @@ const der = Buffer.from( assert.strictEqual( legacyObject.fingerprint256, legacyObjectCheck.fingerprint256); @@ -896,7 +905,7 @@ index 940c43cc40bf15e51df177ee30ecc69ffbeec296..e95743a91a3c709c7d2c10dc80b3f75b // Create TLS1.2 server diff --git a/test/parallel/test-tls-getcertificate-x509.js b/test/parallel/test-tls-getcertificate-x509.js -index 5be788f67931131256f7fb0ab802cb0edee58173..0969e417c239b7300f53f6c4434318bc8fe579fe 100644 +index aa685ca9e09cf0d17ff4d5480089e9977dd51f72..ccafa427433922155c1afd5d95ba69d8108825ef 100644 --- a/test/parallel/test-tls-getcertificate-x509.js +++ b/test/parallel/test-tls-getcertificate-x509.js @@ -20,9 +20,7 @@ const server = tls.createServer(options, function(cleartext) { @@ -905,8 +914,8 @@ index 5be788f67931131256f7fb0ab802cb0edee58173..0969e417c239b7300f53f6c4434318bc assert(cert instanceof X509Certificate); - assert.strictEqual( - cert.serialNumber, -- 'D0082F458B6EFBE8'); -+ assert.match(cert.serialNumber, /D0082F458B6EFBE8/i) +- '5B75D77EDC7FB5B7FA9F1424DA4C64FB815DCBDE'); ++ assert.match(cert.serialNumber, /5B75D77EDC7FB5B7FA9F1424DA4C64FB815DCBDE/i) })); server.listen(0, common.mustCall(function() { @@ -916,9 +925,9 @@ index 5be788f67931131256f7fb0ab802cb0edee58173..0969e417c239b7300f53f6c4434318bc assert.strictEqual(peerCert.issuerCertificate.issuerCertificate, undefined); - assert.strictEqual( - peerCert.issuerCertificate.serialNumber, -- 'ECC9B856270DA9A7' +- '147D36C1C2F74206DE9FAB5F2226D78ADB00A425' - ); -+ assert.match(peerCert.issuerCertificate.serialNumber, /ECC9B856270DA9A7/i); ++ assert.match(peerCert.issuerCertificate.serialNumber, /147D36C1C2F74206DE9FAB5F2226D78ADB00A425/i); server.close(); })); socket.end('Hello'); 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 07dbe2aceabcbb..7d174e36b5bab6 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 @@ -22,7 +22,7 @@ index 315e5c1d03a59dbb1eed5a79ec013a0815e3f5fe..8a7ad50b818448fa14eb4707c1dcec2a int thread_pool_size, node::tracing::TracingController* tracing_controller) { diff --git a/src/node.h b/src/node.h -index e8c72092c72b547946a09ec8e1f6cd7ece156235..a6407dd1e78c8fa86dfc2a6c40813b1b4d6a6829 100644 +index 845dbb9ef6ed37213dd0a9044e883c5feaa43b6e..c3da0c8be37fb0983bd389fc7466ab85a21afbda 100644 --- a/src/node.h +++ b/src/node.h @@ -129,6 +129,7 @@ namespace node { @@ -33,7 +33,7 @@ index e8c72092c72b547946a09ec8e1f6cd7ece156235..a6407dd1e78c8fa86dfc2a6c40813b1b class TracingController; } -@@ -564,6 +565,8 @@ NODE_EXTERN void GetNodeReport(Environment* env, +@@ -650,6 +651,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 251511ee8db598..99321778dfb0b1 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 a6ce4de49d9bf6962faddc99a3c5ed84046f0a13..678627d4ce460fc1519cd486a46eba1f78828a31 100644 +index b907e9e9cdc4e407ee8361cebce2dc168b8c0ed3..804baa633cd7d1a57a8248b30cb1c4f65d169bd9 100644 --- a/src/crypto/crypto_cipher.cc +++ b/src/crypto/crypto_cipher.cc @@ -27,7 +27,8 @@ using v8::Value; @@ -31,7 +31,7 @@ index a6ce4de49d9bf6962faddc99a3c5ed84046f0a13..678627d4ce460fc1519cd486a46eba1f case EVP_CIPH_GCM_MODE: #ifndef OPENSSL_NO_OCB diff --git a/src/crypto/crypto_common.cc b/src/crypto/crypto_common.cc -index 3bf480f8f0c77d440324cf8847f4a214521f8162..40b6e311a14f5e824f8f0aff3121221eac94fd8a 100644 +index 9777737126551035430178a2e0956769865b9b1a..c13185c32a26ac9facb12106c4e756640e35fb93 100644 --- a/src/crypto/crypto_common.cc +++ b/src/crypto/crypto_common.cc @@ -164,7 +164,7 @@ const char* GetClientHelloALPN(const SSLPointer& ssl) { @@ -84,7 +84,7 @@ index 3bf480f8f0c77d440324cf8847f4a214521f8162..40b6e311a14f5e824f8f0aff3121221e const char* X509ErrorCode(long err) { // NOLINT(runtime/int) const char* code = "UNSPECIFIED"; -@@ -1045,14 +1052,14 @@ MaybeLocal GetClientHelloCiphers( +@@ -1044,14 +1051,14 @@ MaybeLocal GetClientHelloCiphers( Environment* env, const SSLPointer& ssl) { EscapableHandleScope scope(env->isolate()); @@ -191,10 +191,10 @@ index dd69323b80076d7333b80453c9cc9ef5b680ce27..6431b768c83fa27b2287588e936f93ae UNREACHABLE(); } diff --git a/src/crypto/crypto_dsa.cc b/src/crypto/crypto_dsa.cc -index c7894baf00ee9ce4684f4c752f1c7c9b98163741..655895dbff8b88daa53c7b40a5feca42a461b689 100644 +index 862c091b05f5886479cedb8b95b756e4fd1547ee..c4cf3a59677ae9640e444f2649f89de3ab3c5c9e 100644 --- a/src/crypto/crypto_dsa.cc +++ b/src/crypto/crypto_dsa.cc -@@ -29,7 +29,7 @@ namespace crypto { +@@ -40,7 +40,7 @@ namespace crypto { EVPKeyCtxPointer DsaKeyGenTraits::Setup(DsaKeyPairGenConfig* params) { EVPKeyCtxPointer param_ctx(EVP_PKEY_CTX_new_id(EVP_PKEY_DSA, nullptr)); EVP_PKEY* raw_params = nullptr; @@ -203,7 +203,7 @@ index c7894baf00ee9ce4684f4c752f1c7c9b98163741..655895dbff8b88daa53c7b40a5feca42 if (!param_ctx || EVP_PKEY_paramgen_init(param_ctx.get()) <= 0 || EVP_PKEY_CTX_set_dsa_paramgen_bits( -@@ -49,7 +49,9 @@ EVPKeyCtxPointer DsaKeyGenTraits::Setup(DsaKeyPairGenConfig* params) { +@@ -55,7 +55,9 @@ EVPKeyCtxPointer DsaKeyGenTraits::Setup(DsaKeyPairGenConfig* params) { return EVPKeyCtxPointer(); } } @@ -228,10 +228,10 @@ index 2f9e9aacb1e652202d72c69b46f8e76d6c5405a8..5f19c38a78e37d3e8d92bcc20ae1357f 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 ec339e5635d419db76f78974941493e32e968e84..e4a842b66994d4599d513296dff7d1891a9264a8 100644 +index 4eacb1f142b6e04d6db17ca267d1fb6814666a01..79ad930c8bea22cf1ca645373438cc2706777c12 100644 --- a/src/crypto/crypto_rsa.cc +++ b/src/crypto/crypto_rsa.cc -@@ -621,10 +621,11 @@ Maybe GetRsaKeyDetail( +@@ -610,10 +610,11 @@ Maybe GetRsaKeyDetail( } if (params->saltLength != nullptr) { @@ -248,7 +248,7 @@ index ec339e5635d419db76f78974941493e32e968e84..e4a842b66994d4599d513296dff7d189 if (target diff --git a/src/crypto/crypto_util.cc b/src/crypto/crypto_util.cc -index e878c5ea15d58fb5eb096197209bc7122a504ca9..51973d7cb15f0650f3e94a7b8c9811c550ee9b0f 100644 +index f1bb7a9c7aadbc061f3de4de72f13f45a2195bee..4ea6d851450c46659e7e19f50c614419a46b30c0 100644 --- a/src/crypto/crypto_util.cc +++ b/src/crypto/crypto_util.cc @@ -495,24 +495,15 @@ Maybe Decorate(Environment* env, Local obj, @@ -277,7 +277,7 @@ index e878c5ea15d58fb5eb096197209bc7122a504ca9..51973d7cb15f0650f3e94a7b8c9811c5 V(USER) \ #define V(name) case ERR_LIB_##name: lib = #name "_"; break; -@@ -671,7 +662,7 @@ void SecureBuffer(const FunctionCallbackInfo& args) { +@@ -686,7 +677,7 @@ void SecureBuffer(const FunctionCallbackInfo& args) { CHECK(args[0]->IsUint32()); Environment* env = Environment::GetCurrent(args); uint32_t len = args[0].As()->Value(); @@ -286,7 +286,7 @@ index e878c5ea15d58fb5eb096197209bc7122a504ca9..51973d7cb15f0650f3e94a7b8c9811c5 if (data == nullptr) { // There's no memory available for the allocation. // Return nothing. -@@ -682,7 +673,7 @@ void SecureBuffer(const FunctionCallbackInfo& args) { +@@ -697,7 +688,7 @@ void SecureBuffer(const FunctionCallbackInfo& args) { data, len, [](void* data, size_t len, void* deleter_data) { @@ -295,7 +295,7 @@ index e878c5ea15d58fb5eb096197209bc7122a504ca9..51973d7cb15f0650f3e94a7b8c9811c5 }, data); Local buffer = ArrayBuffer::New(env->isolate(), store); -@@ -690,10 +681,12 @@ void SecureBuffer(const FunctionCallbackInfo& args) { +@@ -705,10 +696,12 @@ void SecureBuffer(const FunctionCallbackInfo& args) { } void SecureHeapUsed(const FunctionCallbackInfo& args) { @@ -335,7 +335,7 @@ index b7cacae4c3d430c888fa7b5c66d8ed822e18f59d..d3b2ba33b06e1ebe140a30c777907f2b #if NODE_OPENSSL_HAS_QUIC #include diff --git a/src/node_options.cc b/src/node_options.cc -index bd4ad2f6408ca8127fa7f03b73f441884af81aa2..0e59521ed5a43189a175417eab89fd9daee000be 100644 +index e2a051d03c7edefea4a2fc34e841f3ef59931c04..635b8f60806854e4e02be546c40824b9a95b88a2 100644 --- a/src/node_options.cc +++ b/src/node_options.cc @@ -5,7 +5,7 @@ @@ -348,7 +348,7 @@ index bd4ad2f6408ca8127fa7f03b73f441884af81aa2..0e59521ed5a43189a175417eab89fd9d #endif diff --git a/src/node_options.h b/src/node_options.h -index b20cfae141956a9817076e7a1fc7218a9ead6f0c..d7a0c84dd6de4811a371ef6615f3be470d39725c 100644 +index 7346fc7441eb3c3c6f8b0ea2d3cafa73308abe14..a13647f171f6e87b5be2f4863c87d981e12a09a2 100644 --- a/src/node_options.h +++ b/src/node_options.h @@ -11,7 +11,7 @@ diff --git a/patches/node/pass_all_globals_through_require.patch b/patches/node/pass_all_globals_through_require.patch index 3cd86f92ab5fa3..34f17d343ffe58 100644 --- a/patches/node/pass_all_globals_through_require.patch +++ b/patches/node/pass_all_globals_through_require.patch @@ -6,10 +6,10 @@ 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 67133b4926763429f4324c4f751d20c3c50a9155..ca83fa412f1979c0037254253939fd6dff6b5010 100644 +index 68edd781e33a3e8a451ece8191b918ca70e756eb..7d780ed13412bb307435d98d4a8830a86dd72da1 100644 --- a/lib/internal/modules/cjs/loader.js +++ b/lib/internal/modules/cjs/loader.js -@@ -133,6 +133,13 @@ const { +@@ -134,6 +134,13 @@ const { CHAR_COLON } = require('internal/constants'); @@ -23,7 +23,7 @@ index 67133b4926763429f4324c4f751d20c3c50a9155..ca83fa412f1979c0037254253939fd6d const { isProxy } = require('internal/util/types'); -@@ -1144,10 +1151,12 @@ Module.prototype._compile = function(content, filename) { +@@ -1154,10 +1161,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_allow_embedder_overriding_of_internal_fs_calls.patch b/patches/node/refactor_allow_embedder_overriding_of_internal_fs_calls.patch index b92ff9c350eb3f..e82fcdf373a0e6 100644 --- a/patches/node/refactor_allow_embedder_overriding_of_internal_fs_calls.patch +++ b/patches/node/refactor_allow_embedder_overriding_of_internal_fs_calls.patch @@ -7,10 +7,10 @@ We use this to allow node's 'fs' module to read from ASAR files as if they were a real filesystem. diff --git a/lib/internal/bootstrap/node.js b/lib/internal/bootstrap/node.js -index d2b82e7b699cd70ca300f4b036b88033e135910e..f2da9d4a1293d9879b0bb0867e68f7196f667dc6 100644 +index 108b11a2f960d2c7b0054b4d6d7a236c124ec9fe..83ac636db19a66f43fc7d3c1fc1e8290eeadd334 100644 --- a/lib/internal/bootstrap/node.js +++ b/lib/internal/bootstrap/node.js -@@ -88,6 +88,10 @@ process.domain = null; +@@ -104,6 +104,10 @@ process.domain = null; } process._exiting = false; @@ -22,7 +22,7 @@ index d2b82e7b699cd70ca300f4b036b88033e135910e..f2da9d4a1293d9879b0bb0867e68f719 const nativeModule = internalBinding('builtins'); diff --git a/lib/internal/modules/cjs/loader.js b/lib/internal/modules/cjs/loader.js -index ca83fa412f1979c0037254253939fd6dff6b5010..4b592b0f7d9d481ee746b4e6db07620a27284f17 100644 +index 7d780ed13412bb307435d98d4a8830a86dd72da1..5ea58cdbf5b1caa41ff3d1c7f4569d112974425f 100644 --- a/lib/internal/modules/cjs/loader.js +++ b/lib/internal/modules/cjs/loader.js @@ -92,7 +92,7 @@ const fs = require('fs'); @@ -34,7 +34,7 @@ index ca83fa412f1979c0037254253939fd6dff6b5010..4b592b0f7d9d481ee746b4e6db07620a const packageJsonReader = require('internal/modules/package_json_reader'); const { safeGetenv } = internalBinding('credentials'); const { -@@ -167,7 +167,7 @@ function stat(filename) { +@@ -168,7 +168,7 @@ function stat(filename) { const result = statCache.get(filename); if (result !== undefined) return result; } 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 913f75736762b2..37d6fd07f371f4 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 6ce21363e1ee6acdd2e48763d0637ef1983e5264..f448bde2a570480a4390daf5392dc9d9b0f52df3 100644 +index 335de95ec06a9985821f3dbaee802ec319f1f013..73c1dc769542865bdf7a2a03c16cef141d3f4b05 100644 --- a/lib/child_process.js +++ b/lib/child_process.js @@ -136,6 +136,16 @@ function fork(modulePath, args = [], options) { diff --git a/patches/node/support_v8_sandboxed_pointers.patch b/patches/node/support_v8_sandboxed_pointers.patch index 3e501f8e05560c..feb7dbd5029dce 100644 --- a/patches/node/support_v8_sandboxed_pointers.patch +++ b/patches/node/support_v8_sandboxed_pointers.patch @@ -26,7 +26,7 @@ index 8a7ad50b818448fa14eb4707c1dcec2a1339d2db..b6981c37d5b286e22f24d11751eb05f7 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 51973d7cb15f0650f3e94a7b8c9811c550ee9b0f..1ab08092e8b8ad8a989eaa18f8e573b5948d295f 100644 +index 4ea6d851450c46659e7e19f50c614419a46b30c0..64c1639142f40962209901bd84b3f349be855ea0 100644 --- a/src/crypto/crypto_util.cc +++ b/src/crypto/crypto_util.cc @@ -326,10 +326,35 @@ ByteSource& ByteSource::operator=(ByteSource&& other) noexcept { @@ -79,7 +79,7 @@ index 51973d7cb15f0650f3e94a7b8c9811c550ee9b0f..1ab08092e8b8ad8a989eaa18f8e573b5 return ArrayBuffer::New(env->isolate(), std::move(store)); } -@@ -658,6 +684,16 @@ namespace { +@@ -673,6 +699,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 51973d7cb15f0650f3e94a7b8c9811c550ee9b0f..1ab08092e8b8ad8a989eaa18f8e573b5 void SecureBuffer(const FunctionCallbackInfo& args) { CHECK(args[0]->IsUint32()); Environment* env = Environment::GetCurrent(args); -@@ -679,6 +715,7 @@ void SecureBuffer(const FunctionCallbackInfo& args) { +@@ -694,6 +730,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 51973d7cb15f0650f3e94a7b8c9811c550ee9b0f..1ab08092e8b8ad8a989eaa18f8e573b5 void SecureHeapUsed(const FunctionCallbackInfo& args) { #ifndef OPENSSL_IS_BORINGSSL diff --git a/src/crypto/crypto_util.h b/src/crypto/crypto_util.h -index dc3bb15cfb48a8fdca471ac87840a8de30437920..f54555ae83e0bc2a4fc1bd1c6da08b30dfc1c6e4 100644 +index 7f83d6d1919df55e2e9274afa95b17c8bada1158..0949f7fd1cbd5ab46a4cb9b44598aea4924b6429 100644 --- a/src/crypto/crypto_util.h +++ b/src/crypto/crypto_util.h @@ -279,7 +279,7 @@ class ByteSource { @@ -131,7 +131,7 @@ index 581d52a7d05738133e5c3fad33cb73b7c575ef0b..6a4f24aa1d6853826e7ab5c729918c90 return ret; diff --git a/src/node_internals.h b/src/node_internals.h -index 1449d2acd327b9cbbe32286ec6b7f6b412e693a2..d626d86c8dd8be78b3035be77867903fa0be68d7 100644 +index f27e03aed66fed5a4dc59ec3ab1102a9ea2c8c56..6d315edb9ce87fe8cce8af91bb45fd0810c748e1 100644 --- a/src/node_internals.h +++ b/src/node_internals.h @@ -99,7 +99,9 @@ v8::Maybe InitializePrimordials(v8::Local context); diff --git a/patches/node/v8_api_advance_api_deprecation.patch b/patches/node/v8_api_advance_api_deprecation.patch index fa7a280c15ba05..7f6626dc90e555 100644 --- a/patches/node/v8_api_advance_api_deprecation.patch +++ b/patches/node/v8_api_advance_api_deprecation.patch @@ -7,7 +7,7 @@ Refs https://chromium-review.googlesource.com/c/v8/v8/+/3702449 Should be upstreamed. diff --git a/src/inspector_agent.cc b/src/inspector_agent.cc -index f708933d8bd6a6dc6741d6af22665b37c56e333a..d029f4e44347bc026d0dff45403227da202020a3 100644 +index 14311237384c023ce6759d31c1db7c09eb521ab7..8f82a61a4345bdd4ffcab7ba93019ad23fbd3259 100644 --- a/src/inspector_agent.cc +++ b/src/inspector_agent.cc @@ -217,7 +217,8 @@ class ChannelImpl final : public v8_inspector::V8Inspector::Channel, diff --git a/script/node-disabled-tests.json b/script/node-disabled-tests.json index 2477f1dc51778d..75ac345279680d 100644 --- a/script/node-disabled-tests.json +++ b/script/node-disabled-tests.json @@ -43,6 +43,10 @@ "parallel/test-snapshot-basic", "parallel/test-snapshot-console", "parallel/test-snapshot-cjs-main", + "parallel/test-snapshot-dns-lookup-localhost", + "parallel/test-snapshot-dns-lookup-localhost-promise", + "parallel/test-snapshot-dns-resolve-localhost", + "parallel/test-snapshot-dns-resolve-localhost-promise", "parallel/test-snapshot-error", "parallel/test-snapshot-gzip", "parallel/test-snapshot-umd", diff --git a/shell/app/node_main.cc b/shell/app/node_main.cc index f1ef042242435b..998cf806c448b2 100644 --- a/shell/app/node_main.cc +++ b/shell/app/node_main.cc @@ -141,12 +141,22 @@ int NodeMain(int argc, char* argv[]) { if (flags_exit_code != 0) exit(flags_exit_code); - node::InitializationSettingsFlags flags = node::kRunPlatformInit; - node::InitializationResult result = - node::InitializeOncePerProcess(argc, argv, flags); + // Hack around with the argv pointer. Used for process.title = "blah". + argv = uv_setup_args(argc, argv); - if (result.early_return) - exit(result.exit_code); + std::vector args(argv, argv + argc); + std::unique_ptr result = + node::InitializeOncePerProcess( + args, + {node::ProcessInitializationFlags::kNoInitializeV8, + node::ProcessInitializationFlags::kNoInitializeNodeV8Platform}); + + for (const std::string& error : result->errors()) + fprintf(stderr, "%s: %s\n", args[0].c_str(), error.c_str()); + + if (result->early_return() != 0) { + return result->exit_code(); + } gin::V8Initializer::LoadV8Snapshot( gin::V8SnapshotFileType::kWithAdditionalContext); @@ -176,7 +186,7 @@ int NodeMain(int argc, char* argv[]) { uint64_t env_flags = node::EnvironmentFlags::kDefaultFlags | node::EnvironmentFlags::kHideConsoleWindows; env = node::CreateEnvironment( - isolate_data, gin_env.context(), result.args, result.exec_args, + isolate_data, gin_env.context(), result->args(), result->exec_args(), static_cast(env_flags)); CHECK_NE(nullptr, env);