зеркало из https://github.com/electron/electron.git
chore: bump node to v20.11.0 (main) (#40941)
* chore: bump node in DEPS to v20.11.0 * module: bootstrap module loaders in shadow realm https://github.com/nodejs/node/pull/48655 * src: add commit hash shorthand in zlib version https://github.com/nodejs/node/pull/50158 * v8,tools: expose necessary V8 defines https://github.com/nodejs/node/pull/50820 * esm: do not call getSource when format is commonjs https://github.com/nodejs/node/pull/50465 * esm: fallback to readFileSync when source is nullish https://github.com/nodejs/node/pull/50825 * vm: allow dynamic import with a referrer realm https://github.com/nodejs/node/pull/50360 * test: skip test-diagnostics-channel-memory-leak.js https://github.com/nodejs/node/pull/50327 * esm: do not call getSource when format is commonjs https://github.com/nodejs/node/pull/50465 * lib: fix assert throwing different error messages in ESM and CJS https://github.com/nodejs/node/pull/50634 * src: fix compatility with upcoming V8 12.1 APIs https://github.com/nodejs/node/pull/50709 * deps: update base64 to 0.5.1 https://github.com/nodejs/node/pull/50629 * src: avoid silent coercion to signed/unsigned int https://github.com/nodejs/node/pull/50663 * src: fix compatility with upcoming V8 12.1 APIs https://github.com/nodejs/node/pull/50709 * chore: fix patch indices * chore: update patches * test: disable TLS cipher test This can't be enabled owing to BoringSSL incompatibilities. https://github.com/nodejs/node/pull/50186 * fix: check for Buffer and global definition in shadow realm https://github.com/nodejs/node/pull/51239 * test: disable parallel/test-shadow-realm-custom-loader Incompatible with our asar logic, resulting in the following failure: > Failed to CompileAndCall electron script: electron/js2c/asar_bundle * chore: remove deleted parallel/test-crypto-modp1-error test * test: make test-node-output-v8-warning generic https://github.com/nodejs/node/pull/50421 * chore: fixup ModuleWrap patch * test: match wpt/streams/transferable/transform-stream-members.any.js to upstream * fix: sandbox is not enabled on arm * chore: disable v8 sandbox on ia32/arm --------- Co-authored-by: electron-roller[bot] <84116207+electron-roller[bot]@users.noreply.github.com> Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com> Co-authored-by: Cheng Zhao <zcbenz@gmail.com>
This commit is contained in:
Родитель
6ea7da4b90
Коммит
f4ee3c1b2a
8
BUILD.gn
8
BUILD.gn
|
@ -9,7 +9,7 @@ import("//pdf/features.gni")
|
|||
import("//ppapi/buildflags/buildflags.gni")
|
||||
import("//printing/buildflags/buildflags.gni")
|
||||
import("//testing/test.gni")
|
||||
import("//third_party/electron_node/node.gni")
|
||||
import("//third_party/electron_node/electron_node.gni")
|
||||
import("//third_party/ffmpeg/ffmpeg_options.gni")
|
||||
import("//tools/generate_library_loader/generate_library_loader.gni")
|
||||
import("//tools/grit/grit_rule.gni")
|
||||
|
@ -414,8 +414,10 @@ action("electron_generate_node_defines") {
|
|||
}
|
||||
|
||||
source_set("electron_lib") {
|
||||
configs += [ "//v8:external_startup_data" ]
|
||||
configs += [ "//third_party/electron_node:node_internals" ]
|
||||
configs += [
|
||||
"//v8:external_startup_data",
|
||||
"//third_party/electron_node:node_internals",
|
||||
]
|
||||
|
||||
public_configs = [
|
||||
":branding",
|
||||
|
|
2
DEPS
2
DEPS
|
@ -4,7 +4,7 @@ vars = {
|
|||
'chromium_version':
|
||||
'122.0.6236.2',
|
||||
'node_version':
|
||||
'v20.10.0',
|
||||
'v20.11.0',
|
||||
'nan_version':
|
||||
'e14bdcd1f72d62bca1d541b66da43130384ec213',
|
||||
'squirrel.mac_version':
|
||||
|
|
|
@ -6,13 +6,15 @@ Subject: build: allow electron to use exec_script
|
|||
This is similar to the //build usecase so we're OK adding ourselves here
|
||||
|
||||
diff --git a/.gn b/.gn
|
||||
index afe0b3e90fafb9413cc49198cf3ad5d66d433b54..a8d83d6c95ebda9a898a383a8a1581d75da09f2e 100644
|
||||
index afe0b3e90fafb9413cc49198cf3ad5d66d433b54..6b83b22994998ba98895144ec81b4cdff1b0e0db 100644
|
||||
--- a/.gn
|
||||
+++ b/.gn
|
||||
@@ -167,4 +167,6 @@ exec_script_whitelist =
|
||||
@@ -167,4 +167,8 @@ exec_script_whitelist =
|
||||
|
||||
"//tools/grit/grit_rule.gni",
|
||||
"//tools/gritsettings/BUILD.gn",
|
||||
+
|
||||
+ "//electron/BUILD.gn"
|
||||
+ "//electron/BUILD.gn",
|
||||
+ "//third_party/electron_node/deps/base64/BUILD.gn",
|
||||
+ "//third_party/electron_node/deps/base64/unofficial.gni",
|
||||
]
|
||||
|
|
|
@ -18,7 +18,6 @@ fix_serdes_test.patch
|
|||
feat_add_knostartdebugsignalhandler_to_environment_to_prevent.patch
|
||||
feat_add_uv_loop_interrupt_on_io_change_option_to_uv_loop_configure.patch
|
||||
support_v8_sandboxed_pointers.patch
|
||||
build_ensure_v8_pointer_compression_sandbox_is_enabled_on_64bit.patch
|
||||
build_ensure_native_module_compilation_fails_if_not_using_a_new.patch
|
||||
fix_expose_the_built-in_electron_module_via_the_esm_loader.patch
|
||||
fix_expose_lookupandcompile_with_parameters.patch
|
||||
|
@ -34,16 +33,16 @@ fix_do_not_resolve_electron_entrypoints.patch
|
|||
ci_ensure_node_tests_set_electron_run_as_node.patch
|
||||
fix_assert_module_in_the_renderer_process.patch
|
||||
fix_add_trusted_space_and_trusted_lo_space_to_the_v8_heap.patch
|
||||
src_adapt_to_v8_exception_api_change.patch
|
||||
win_process_avoid_assert_after_spawning_store_app_4152.patch
|
||||
chore_remove_use_of_deprecated_kmaxlength.patch
|
||||
fix_avx_detection.patch
|
||||
src_avoid_copying_string_in_fs_permission.patch
|
||||
fix_missing_include_for_node_extern.patch
|
||||
feat_optionally_prevent_calling_v8_enablewebassemblytraphandler.patch
|
||||
build_only_create_cppgc_heap_on_non-32_bit_platforms.patch
|
||||
src_fix_compatility_with_upcoming_v8_12_1_apis.patch
|
||||
fix_-wshadow_error_in_uvwasi_c.patch
|
||||
src_update_default_v8_platform_to_override_functions_with_location.patch
|
||||
fix_capture_embedder_exceptions_before_entering_v8.patch
|
||||
spec_add_iterator_to_global_intrinsics.patch
|
||||
build_do_not_rely_on_gn_helpers_in_gn_build.patch
|
||||
test_make_test-node-output-v8-warning_generic.patch
|
||||
test_match_wpt_streams_transferable_transform-stream-members_any_js.patch
|
||||
build_ensure_v8_pointer_compression_sandbox_is_enabled_on_64bit.patch
|
||||
|
|
|
@ -5,24 +5,38 @@ Subject: build: add GN build files
|
|||
|
||||
This adds GN build files for Node, so we don't have to build with GYP.
|
||||
|
||||
Note that there always GN files in upstream Node in 20/21 branches,
|
||||
however those files were cherry-picked from main branch and do not
|
||||
really in 20/21. We have to wait until 22 is released to be able to
|
||||
build with upstream GN files.
|
||||
|
||||
diff --git a/BUILD.gn b/BUILD.gn
|
||||
new file mode 100644
|
||||
index 0000000000000000000000000000000000000000..24c122008e0fc009833cf9189ebf43883207c754
|
||||
--- /dev/null
|
||||
index 1ed186b597eece7c34cb69c8e1e20870555a040d..541e7d2b8ee05677b64a3ea39c1422560fd5df75 100644
|
||||
--- a/BUILD.gn
|
||||
+++ b/BUILD.gn
|
||||
@@ -0,0 +1,402 @@
|
||||
@@ -1,14 +1,404 @@
|
||||
-##############################################################################
|
||||
-# #
|
||||
-# DO NOT EDIT THIS FILE! #
|
||||
-# #
|
||||
-##############################################################################
|
||||
+import("//v8/gni/v8.gni")
|
||||
+import("//electron/js2c_toolchain.gni")
|
||||
+import("node.gni")
|
||||
+
|
||||
+import("electron_node.gni")
|
||||
|
||||
-# This file is used by GN for building, which is NOT the build system used for
|
||||
-# building official binaries.
|
||||
-# Please modify the gyp files if you are making changes to build system.
|
||||
+declare_args() {
|
||||
+ # Enable the V8 inspector protocol for use with node.
|
||||
+ node_enable_inspector = true
|
||||
+
|
||||
|
||||
-import("unofficial.gni")
|
||||
+ # Build node with SSL support.
|
||||
+ # The variable is called "openssl" for parity with node's GYP build.
|
||||
+ node_use_openssl = true
|
||||
+
|
||||
|
||||
-node_gn_build("node") {
|
||||
+ # Use the specified path to system CA (PEM format) in addition to
|
||||
+ # the BoringSSL supplied CA store or compiled-in Mozilla CA copy.
|
||||
+ node_openssl_system_ca_path = ""
|
||||
|
@ -155,9 +169,12 @@ index 0000000000000000000000000000000000000000..24c122008e0fc009833cf9189ebf4388
|
|||
+config("node_lib_config") {
|
||||
+ include_dirs = [ "src" ]
|
||||
+
|
||||
+ # FIXME(deepak1556): include paths should be corrected,
|
||||
+ # refer https://docs.google.com/presentation/d/1oxNHaVjA9Gn_rTzX6HIpJHP7nXRua_0URXxxJ3oYRq0/edit#slide=id.g71ecd450e_2_702
|
||||
+ cflags = [ "-Wno-microsoft-include" ]
|
||||
+ cflags = [
|
||||
+ "-Wno-shadow",
|
||||
+ # FIXME(deepak1556): include paths should be corrected,
|
||||
+ # refer https://docs.google.com/presentation/d/1oxNHaVjA9Gn_rTzX6HIpJHP7nXRua_0URXxxJ3oYRq0/edit#slide=id.g71ecd450e_2_702
|
||||
+ "-Wno-microsoft-include",
|
||||
+ ]
|
||||
+
|
||||
+ configs = [ ":node_features" ]
|
||||
+
|
||||
|
@ -317,7 +334,6 @@ index 0000000000000000000000000000000000000000..24c122008e0fc009833cf9189ebf4388
|
|||
+ "-Wno-unused-label",
|
||||
+ "-Wno-unused-private-field",
|
||||
+ "-Wno-unused-variable",
|
||||
+ "-Wno-shadow",
|
||||
+ ]
|
||||
+
|
||||
+ if (v8_enable_i18n_support) {
|
||||
|
@ -412,172 +428,122 @@ index 0000000000000000000000000000000000000000..24c122008e0fc009833cf9189ebf4388
|
|||
+ ]
|
||||
+ cflags_cc += [ "-Wno-sign-compare" ]
|
||||
+ }
|
||||
+}
|
||||
}
|
||||
diff --git a/deps/ada/BUILD.gn b/deps/ada/BUILD.gn
|
||||
new file mode 100644
|
||||
index 0000000000000000000000000000000000000000..1ce69e9deba1a9b191e8d95f4c82e0ec1f7b50ca
|
||||
--- /dev/null
|
||||
index e92ac3a3beac143dced2efb05304ed8ba832b067..1ce69e9deba1a9b191e8d95f4c82e0ec1f7b50ca 100644
|
||||
--- a/deps/ada/BUILD.gn
|
||||
+++ b/deps/ada/BUILD.gn
|
||||
@@ -0,0 +1,12 @@
|
||||
@@ -1,14 +1,12 @@
|
||||
-##############################################################################
|
||||
-# #
|
||||
-# DO NOT EDIT THIS FILE! #
|
||||
-# #
|
||||
-##############################################################################
|
||||
+import("//v8/gni/v8.gni")
|
||||
+
|
||||
|
||||
-# This file is used by GN for building, which is NOT the build system used for
|
||||
-# building official binaries.
|
||||
-# Please modify the gyp files if you are making changes to build system.
|
||||
+config("ada_config") {
|
||||
+ include_dirs = [ "." ]
|
||||
+}
|
||||
+
|
||||
|
||||
-import("unofficial.gni")
|
||||
+static_library("ada") {
|
||||
+ include_dirs = [ "." ]
|
||||
+ sources = [ "ada.cpp" ]
|
||||
+
|
||||
|
||||
-ada_gn_build("ada") {
|
||||
+ public_configs = [ ":ada_config" ]
|
||||
+}
|
||||
diff --git a/deps/base64/BUILD.gn b/deps/base64/BUILD.gn
|
||||
new file mode 100644
|
||||
index 0000000000000000000000000000000000000000..9b97aabe865e4cf12f6c3ccda196b372769a823b
|
||||
--- /dev/null
|
||||
+++ b/deps/base64/BUILD.gn
|
||||
@@ -0,0 +1,135 @@
|
||||
+config("base64_config") {
|
||||
+ include_dirs = [
|
||||
+ "base64/include",
|
||||
+ "base64/lib",
|
||||
+ ]
|
||||
}
|
||||
diff --git a/deps/base64/unofficial.gni b/deps/base64/unofficial.gni
|
||||
index 269c62d976d6adea6d020568094e23e9b0a9dc7c..14ffff0b4badb7ad71f2b6df43ad2eb300fc55ed 100644
|
||||
--- a/deps/base64/unofficial.gni
|
||||
+++ b/deps/base64/unofficial.gni
|
||||
@@ -18,6 +18,10 @@ template("base64_gn_build") {
|
||||
}
|
||||
}
|
||||
|
||||
+ # FIXME(zcbenz): ASM on win/x86 compiles perfectly in upstream Node, figure
|
||||
+ # out why it does not work in Electron's build configs.
|
||||
+ support_x86_asm = target_cpu == "x64" || (target_cpu == "x86" && !is_win)
|
||||
+
|
||||
+ defines = [ "BASE64_STATIC_DEFINE" ]
|
||||
+}
|
||||
+
|
||||
+static_library("base64") {
|
||||
+ defines = []
|
||||
+ deps = [
|
||||
+ ":base64_neon32",
|
||||
+ ":base64_neon64",
|
||||
+ ":base64_avx",
|
||||
+ ":base64_avx2",
|
||||
+ ":base64_sse41",
|
||||
+ ":base64_sse42",
|
||||
+ ":base64_ssse3",
|
||||
+ ]
|
||||
+
|
||||
+ public_configs = [ ":base64_config" ]
|
||||
+
|
||||
+ cflags_c = [
|
||||
+ "-Wno-implicit-fallthrough",
|
||||
+ "-Wno-unused-but-set-variable",
|
||||
+ "-Wno-shadow",
|
||||
+ ]
|
||||
+
|
||||
+ sources = [
|
||||
+ "base64/include/libbase64.h",
|
||||
+ "base64/lib/arch/generic/codec.c",
|
||||
+ "base64/lib/codec_choose.c",
|
||||
+ "base64/lib/codecs.h",
|
||||
+ "base64/lib/lib.c",
|
||||
+ "base64/lib/tables/tables.c",
|
||||
+ ]
|
||||
+}
|
||||
+
|
||||
+source_set("base64_ssse3") {
|
||||
+ public_configs = [ ":base64_config" ]
|
||||
+
|
||||
+ if (target_cpu == "ia32" || target_cpu == "x64" || target_cpu == "x32") {
|
||||
+ defines = [ "HAVE_SSSE3=1" ]
|
||||
+
|
||||
+ cflags = [ "-mssse3" ]
|
||||
+ cflags_c = [ "-Wno-implicit-fallthrough" ]
|
||||
+ }
|
||||
+
|
||||
+ sources = [ "base64/lib/arch/ssse3/codec.c" ]
|
||||
+}
|
||||
+
|
||||
+source_set("base64_sse41") {
|
||||
+ public_configs = [ ":base64_config" ]
|
||||
+
|
||||
+ if (target_cpu == "ia32" || target_cpu == "x64" || target_cpu == "x32") {
|
||||
+ defines = [ "HAVE_SSE41=1" ]
|
||||
+
|
||||
+ cflags = [ "-msse4.1" ]
|
||||
+ cflags_c = [ "-Wno-implicit-fallthrough" ]
|
||||
+ }
|
||||
+
|
||||
+ sources = [ "base64/lib/arch/sse41/codec.c" ]
|
||||
+}
|
||||
+
|
||||
+
|
||||
+source_set("base64_sse42") {
|
||||
+ public_configs = [ ":base64_config" ]
|
||||
+
|
||||
+ if (target_cpu == "ia32" || target_cpu == "x64" || target_cpu == "x32") {
|
||||
+ defines = [
|
||||
+ "BASE64_STATIC_DEFINE",
|
||||
+ "HAVE_SSE42=1",
|
||||
+ ]
|
||||
+
|
||||
+ cflags = [ "-msse4.2" ]
|
||||
+ cflags_c = [ "-Wno-implicit-fallthrough" ]
|
||||
+ }
|
||||
+
|
||||
+ sources = [ "base64/lib/arch/sse42/codec.c" ]
|
||||
+}
|
||||
+
|
||||
+source_set("base64_avx") {
|
||||
+ public_configs = [ ":base64_config" ]
|
||||
+
|
||||
+ if (target_cpu == "ia32" || target_cpu == "x64" || target_cpu == "x32") {
|
||||
+ defines = [ "HAVE_AVX=1" ]
|
||||
+
|
||||
+ cflags = [ "-mavx" ]
|
||||
+ cflags_c = [ "-Wno-implicit-fallthrough" ]
|
||||
+ }
|
||||
+
|
||||
+ sources = [ "base64/lib/arch/avx/codec.c" ]
|
||||
+}
|
||||
+
|
||||
+source_set("base64_avx2") {
|
||||
+ public_configs = [ ":base64_config" ]
|
||||
+
|
||||
+ if (target_cpu == "ia32" || target_cpu == "x64" || target_cpu == "x32") {
|
||||
+ defines = [ "HAVE_AVX2=1" ]
|
||||
+
|
||||
+ cflags = [ "-mavx2" ]
|
||||
+ cflags_c = [
|
||||
+ "-Wno-implicit-fallthrough",
|
||||
+ "-Wno-implicit-function-declaration",
|
||||
+ ]
|
||||
+ }
|
||||
+
|
||||
+ sources = [ "base64/lib/arch/avx2/codec.c" ]
|
||||
+}
|
||||
+
|
||||
+source_set("base64_neon32") {
|
||||
+ public_configs = [ ":base64_config" ]
|
||||
+
|
||||
+ if (target_cpu == "arm") {
|
||||
+ defines = [ "HAVE_NEON32=1" ]
|
||||
+
|
||||
+ cflags = [ "-mfpu=neon" ]
|
||||
+ cflags_c = [ "-Wno-implicit-fallthrough" ]
|
||||
+ }
|
||||
+
|
||||
+ sources = [ "base64/lib/arch/neon32/codec.c" ]
|
||||
+}
|
||||
+
|
||||
+source_set("base64_neon64") {
|
||||
+ public_configs = [ ":base64_config" ]
|
||||
+
|
||||
+ if (target_cpu == "arm64") {
|
||||
+ defines = [ "HAVE_NEON64=1" ]
|
||||
+
|
||||
+ cflags_c = [ "-Wno-implicit-fallthrough" ]
|
||||
+ }
|
||||
+
|
||||
+ sources = [ "base64/lib/arch/neon64/codec.c" ]
|
||||
+}
|
||||
config("base64_internal_config") {
|
||||
include_dirs = [ "base64/lib" ]
|
||||
if (is_component_build) {
|
||||
@@ -25,7 +29,7 @@ template("base64_gn_build") {
|
||||
} else {
|
||||
defines = []
|
||||
}
|
||||
- if (target_cpu == "x86" || target_cpu == "x64") {
|
||||
+ if (support_x86_asm) {
|
||||
defines += [
|
||||
"HAVE_SSSE3=1",
|
||||
"HAVE_SSE41=1",
|
||||
@@ -75,7 +79,7 @@ template("base64_gn_build") {
|
||||
source_set("base64_ssse3") {
|
||||
configs += [ ":base64_internal_config" ]
|
||||
sources = [ "base64/lib/arch/ssse3/codec.c" ]
|
||||
- if (target_cpu == "x86" || target_cpu == "x64") {
|
||||
+ if (support_x86_asm) {
|
||||
if (is_clang || !is_win) {
|
||||
cflags_c = [ "-mssse3" ]
|
||||
}
|
||||
@@ -85,7 +89,7 @@ template("base64_gn_build") {
|
||||
source_set("base64_sse41") {
|
||||
configs += [ ":base64_internal_config" ]
|
||||
sources = [ "base64/lib/arch/sse41/codec.c" ]
|
||||
- if (target_cpu == "x86" || target_cpu == "x64") {
|
||||
+ if (support_x86_asm) {
|
||||
if (is_clang || !is_win) {
|
||||
cflags_c = [ "-msse4.1" ]
|
||||
}
|
||||
@@ -95,7 +99,7 @@ template("base64_gn_build") {
|
||||
source_set("base64_sse42") {
|
||||
configs += [ ":base64_internal_config" ]
|
||||
sources = [ "base64/lib/arch/sse42/codec.c" ]
|
||||
- if (target_cpu == "x86" || target_cpu == "x64") {
|
||||
+ if (support_x86_asm) {
|
||||
if (is_clang || !is_win) {
|
||||
cflags_c = [ "-msse4.2" ]
|
||||
}
|
||||
@@ -105,7 +109,7 @@ template("base64_gn_build") {
|
||||
source_set("base64_avx") {
|
||||
configs += [ ":base64_internal_config" ]
|
||||
sources = [ "base64/lib/arch/avx/codec.c" ]
|
||||
- if (target_cpu == "x86" || target_cpu == "x64") {
|
||||
+ if (support_x86_asm) {
|
||||
if (is_clang || !is_win) {
|
||||
cflags_c = [ "-mavx" ]
|
||||
} else if (is_win) {
|
||||
@@ -117,7 +121,7 @@ template("base64_gn_build") {
|
||||
source_set("base64_avx2") {
|
||||
configs += [ ":base64_internal_config" ]
|
||||
sources = [ "base64/lib/arch/avx2/codec.c" ]
|
||||
- if (target_cpu == "x86" || target_cpu == "x64") {
|
||||
+ if (support_x86_asm) {
|
||||
if (is_clang || !is_win) {
|
||||
cflags_c = [ "-mavx2" ]
|
||||
} else if (is_win) {
|
||||
@@ -129,7 +133,7 @@ template("base64_gn_build") {
|
||||
source_set("base64_avx512") {
|
||||
configs += [ ":base64_internal_config" ]
|
||||
sources = [ "base64/lib/arch/avx512/codec.c" ]
|
||||
- if (target_cpu == "x86" || target_cpu == "x64") {
|
||||
+ if (support_x86_asm) {
|
||||
if (is_clang || !is_win) {
|
||||
cflags_c = [
|
||||
"-mavx512vl",
|
||||
diff --git a/deps/cares/BUILD.gn b/deps/cares/BUILD.gn
|
||||
new file mode 100644
|
||||
index 0000000000000000000000000000000000000000..fb1b3138cdb674205afa0ffe078270585843eca3
|
||||
--- /dev/null
|
||||
index ac19ac73ed1e24c61cb679f3851685b79cfc8b39..fb1b3138cdb674205afa0ffe078270585843eca3 100644
|
||||
--- a/deps/cares/BUILD.gn
|
||||
+++ b/deps/cares/BUILD.gn
|
||||
@@ -0,0 +1,143 @@
|
||||
@@ -1,14 +1,143 @@
|
||||
-##############################################################################
|
||||
-# #
|
||||
-# DO NOT EDIT THIS FILE! #
|
||||
-# #
|
||||
-##############################################################################
|
||||
+config("cares_config") {
|
||||
+ include_dirs = [ "include", "src/lib" ]
|
||||
+}
|
||||
|
@ -692,7 +658,10 @@ index 0000000000000000000000000000000000000000..fb1b3138cdb674205afa0ffe07827058
|
|||
+ "_GNU_SOURCE",
|
||||
+ ]
|
||||
+ }
|
||||
+
|
||||
|
||||
-# This file is used by GN for building, which is NOT the build system used for
|
||||
-# building official binaries.
|
||||
-# Please modify the gyp files if you are making changes to build system.
|
||||
+ if (is_win) {
|
||||
+ defines += [ "CARES_PULL_WS2TCPIP_H=1" ]
|
||||
+ include_dirs += [ "config/win32" ]
|
||||
|
@ -710,23 +679,29 @@ index 0000000000000000000000000000000000000000..fb1b3138cdb674205afa0ffe07827058
|
|||
+ } else {
|
||||
+ defines += [ "HAVE_CONFIG_H" ]
|
||||
+ }
|
||||
+
|
||||
|
||||
-import("unofficial.gni")
|
||||
+ if (is_linux) {
|
||||
+ include_dirs += [ "config/linux" ]
|
||||
+ sources += [ "config/linux/ares_config.h" ]
|
||||
+ }
|
||||
+
|
||||
|
||||
-cares_gn_build("cares") {
|
||||
+ if (is_mac) {
|
||||
+ include_dirs += [ "config/darwin" ]
|
||||
+ sources += [ "config/darwin/ares_config.h" ]
|
||||
+ }
|
||||
+}
|
||||
}
|
||||
diff --git a/deps/googletest/BUILD.gn b/deps/googletest/BUILD.gn
|
||||
new file mode 100644
|
||||
index 0000000000000000000000000000000000000000..0daf8c006cef89e76d7eccec3e924bd2718021c9
|
||||
--- /dev/null
|
||||
index de13f3f653b5d53610f4611001c10dce332293c2..0daf8c006cef89e76d7eccec3e924bd2718021c9 100644
|
||||
--- a/deps/googletest/BUILD.gn
|
||||
+++ b/deps/googletest/BUILD.gn
|
||||
@@ -0,0 +1,64 @@
|
||||
@@ -1,14 +1,64 @@
|
||||
-##############################################################################
|
||||
-# #
|
||||
-# DO NOT EDIT THIS FILE! #
|
||||
-# #
|
||||
-##############################################################################
|
||||
+config("gtest_config") {
|
||||
+ include_dirs = [ "include" ]
|
||||
+ defines = [ "UNIT_TEST" ]
|
||||
|
@ -739,13 +714,17 @@ index 0000000000000000000000000000000000000000..0daf8c006cef89e76d7eccec3e924bd2
|
|||
+ ]
|
||||
+
|
||||
+ public_configs = [ ":gtest_config" ]
|
||||
+
|
||||
|
||||
-# This file is used by GN for building, which is NOT the build system used for
|
||||
-# building official binaries.
|
||||
-# Please modify the gyp files if you are making changes to build system.
|
||||
+ cflags_cc = [
|
||||
+ "-Wno-c++98-compat-extra-semi",
|
||||
+ "-Wno-unused-const-variable",
|
||||
+ "-Wno-unreachable-code-return",
|
||||
+ ]
|
||||
+
|
||||
|
||||
-import("unofficial.gni")
|
||||
+ defines = [
|
||||
+ "GTEST_HAS_POSIX_RE=0",
|
||||
+ "GTEST_LANG_CXX11=1",
|
||||
|
@ -786,20 +765,28 @@ index 0000000000000000000000000000000000000000..0daf8c006cef89e76d7eccec3e924bd2
|
|||
+ "src/gtest.cc",
|
||||
+ ]
|
||||
+}
|
||||
+
|
||||
|
||||
-googletest_gn_build("googletest") {
|
||||
+static_library("gtest_main") {
|
||||
+ deps = [ ":gtest" ]
|
||||
+ sources = [ "src/gtest_main.cc" ]
|
||||
+}
|
||||
}
|
||||
diff --git a/deps/histogram/BUILD.gn b/deps/histogram/BUILD.gn
|
||||
new file mode 100644
|
||||
index 0000000000000000000000000000000000000000..02bc887db7c8545e1d8adc57f73f203eec2f2592
|
||||
--- /dev/null
|
||||
index e2f3ee37137a6b7d45cbe79f8b9ba7f693ffc4d3..85467b372f01cf602af45fa2f0d599acabfc2310 100644
|
||||
--- a/deps/histogram/BUILD.gn
|
||||
+++ b/deps/histogram/BUILD.gn
|
||||
@@ -0,0 +1,19 @@
|
||||
@@ -1,14 +1,19 @@
|
||||
-##############################################################################
|
||||
-# #
|
||||
-# DO NOT EDIT THIS FILE! #
|
||||
-# #
|
||||
-##############################################################################
|
||||
+config("histogram_config") {
|
||||
+ include_dirs = [ "include" ]
|
||||
+
|
||||
|
||||
-# This file is used by GN for building, which is NOT the build system used for
|
||||
-# building official binaries.
|
||||
-# Please modify the gyp files if you are making changes to build system.
|
||||
+ cflags = [
|
||||
+ "-Wno-implicit-function-declaration",
|
||||
+ "-Wno-incompatible-pointer-types",
|
||||
|
@ -807,27 +794,39 @@ index 0000000000000000000000000000000000000000..02bc887db7c8545e1d8adc57f73f203e
|
|||
+ "-Wno-atomic-alignment",
|
||||
+ ]
|
||||
+}
|
||||
+
|
||||
|
||||
-import("unofficial.gni")
|
||||
+static_library("histogram") {
|
||||
+ public_configs = [ ":histogram_config" ]
|
||||
+
|
||||
|
||||
-histogram_gn_build("histogram") {
|
||||
+ sources = [
|
||||
+ "src/hdr_histogram.c",
|
||||
+ "src/hdr_histogram.h",
|
||||
+ ]
|
||||
+}
|
||||
\ No newline at end of file
|
||||
}
|
||||
diff --git a/deps/llhttp/BUILD.gn b/deps/llhttp/BUILD.gn
|
||||
new file mode 100644
|
||||
index 0000000000000000000000000000000000000000..fb000f8ee7647c375bc190d1729d67bb7770d109
|
||||
--- /dev/null
|
||||
index 64a2a4799d5530276f46aa1faa63ece063390ada..fb000f8ee7647c375bc190d1729d67bb7770d109 100644
|
||||
--- a/deps/llhttp/BUILD.gn
|
||||
+++ b/deps/llhttp/BUILD.gn
|
||||
@@ -0,0 +1,15 @@
|
||||
@@ -1,14 +1,15 @@
|
||||
-##############################################################################
|
||||
-# #
|
||||
-# DO NOT EDIT THIS FILE! #
|
||||
-# #
|
||||
-##############################################################################
|
||||
-
|
||||
-# This file is used by GN for building, which is NOT the build system used for
|
||||
-# building official binaries.
|
||||
-# Please modify the gyp files if you are making changes to build system.
|
||||
-
|
||||
-import("unofficial.gni")
|
||||
+config("llhttp_config") {
|
||||
+ include_dirs = [ "include" ]
|
||||
+ cflags = [ "-Wno-unreachable-code" ]
|
||||
+}
|
||||
+
|
||||
|
||||
-llhttp_gn_build("llhttp") {
|
||||
+static_library("llhttp") {
|
||||
+ include_dirs = [ "include" ]
|
||||
+ public_configs = [ ":llhttp_config" ]
|
||||
|
@ -837,13 +836,21 @@ index 0000000000000000000000000000000000000000..fb000f8ee7647c375bc190d1729d67bb
|
|||
+ "src/http.c",
|
||||
+ "src/llhttp.c",
|
||||
+ ]
|
||||
+}
|
||||
}
|
||||
diff --git a/deps/nghttp2/BUILD.gn b/deps/nghttp2/BUILD.gn
|
||||
new file mode 100644
|
||||
index 0000000000000000000000000000000000000000..7d2ca477db2415f43ababa270d8aefa3124b2765
|
||||
--- /dev/null
|
||||
index 274352b0e2449f8db49d9a49c6b92a69f97e8363..7d2ca477db2415f43ababa270d8aefa3124b2765 100644
|
||||
--- a/deps/nghttp2/BUILD.gn
|
||||
+++ b/deps/nghttp2/BUILD.gn
|
||||
@@ -0,0 +1,51 @@
|
||||
@@ -1,14 +1,51 @@
|
||||
-##############################################################################
|
||||
-# #
|
||||
-# DO NOT EDIT THIS FILE! #
|
||||
-# #
|
||||
-##############################################################################
|
||||
-
|
||||
-# This file is used by GN for building, which is NOT the build system used for
|
||||
-# building official binaries.
|
||||
-# Please modify the gyp files if you are making changes to build system.
|
||||
+config("nghttp2_config") {
|
||||
+ defines = [ "NGHTTP2_STATICLIB" ]
|
||||
+ include_dirs = [ "lib/includes" ]
|
||||
|
@ -857,7 +864,8 @@ index 0000000000000000000000000000000000000000..7d2ca477db2415f43ababa270d8aefa3
|
|||
+ "HAVE_CONFIG_H",
|
||||
+ ]
|
||||
+ include_dirs = [ "lib/includes" ]
|
||||
+
|
||||
|
||||
-import("unofficial.gni")
|
||||
+ cflags_c = [
|
||||
+ "-Wno-implicit-function-declaration",
|
||||
+ "-Wno-implicit-fallthrough",
|
||||
|
@ -865,7 +873,8 @@ index 0000000000000000000000000000000000000000..7d2ca477db2415f43ababa270d8aefa3
|
|||
+ "-Wno-unreachable-code-return",
|
||||
+ "-Wno-unused-but-set-variable",
|
||||
+ ]
|
||||
+
|
||||
|
||||
-nghttp2_gn_build("nghttp2") {
|
||||
+ sources = [
|
||||
+ "lib/nghttp2_buf.c",
|
||||
+ "lib/nghttp2_callbacks.c",
|
||||
|
@ -894,44 +903,81 @@ index 0000000000000000000000000000000000000000..7d2ca477db2415f43ababa270d8aefa3
|
|||
+ "lib/nghttp2_version.c",
|
||||
+ "lib/sfparse.c"
|
||||
+ ]
|
||||
+}
|
||||
}
|
||||
diff --git a/deps/simdjson/BUILD.gn b/deps/simdjson/BUILD.gn
|
||||
index d0580ccf354d2000fb0075fd3bb4579f93477927..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100644
|
||||
--- a/deps/simdjson/BUILD.gn
|
||||
+++ b/deps/simdjson/BUILD.gn
|
||||
@@ -1,14 +0,0 @@
|
||||
-##############################################################################
|
||||
-# #
|
||||
-# DO NOT EDIT THIS FILE! #
|
||||
-# #
|
||||
-##############################################################################
|
||||
-
|
||||
-# This file is used by GN for building, which is NOT the build system used for
|
||||
-# building official binaries.
|
||||
-# Please modify the gyp files if you are making changes to build system.
|
||||
-
|
||||
-import("unofficial.gni")
|
||||
-
|
||||
-simdjson_gn_build("simdjson") {
|
||||
-}
|
||||
diff --git a/deps/simdutf/BUILD.gn b/deps/simdutf/BUILD.gn
|
||||
new file mode 100644
|
||||
index 0000000000000000000000000000000000000000..bfbd4e656db1a6c73048443f96f1d576a0df7519
|
||||
--- /dev/null
|
||||
index 119d49456911e99944294bd00b3f182a8f0e35b5..ce38c3633a228306622a7237067393d25332c59c 100644
|
||||
--- a/deps/simdutf/BUILD.gn
|
||||
+++ b/deps/simdutf/BUILD.gn
|
||||
@@ -0,0 +1,20 @@
|
||||
@@ -1,14 +1,21 @@
|
||||
-##############################################################################
|
||||
-# #
|
||||
-# DO NOT EDIT THIS FILE! #
|
||||
-# #
|
||||
-##############################################################################
|
||||
+config("simdutf_config") {
|
||||
+ include_dirs = [ "." ]
|
||||
+}
|
||||
+
|
||||
|
||||
-# This file is used by GN for building, which is NOT the build system used for
|
||||
-# building official binaries.
|
||||
-# Please modify the gyp files if you are making changes to build system.
|
||||
+static_library("simdutf") {
|
||||
+ include_dirs = [ "." ]
|
||||
+ sources = [
|
||||
+ "simdutf.cpp",
|
||||
+ ]
|
||||
+
|
||||
|
||||
-import("unofficial.gni")
|
||||
+ public_configs = [ ":simdutf_config" ]
|
||||
+
|
||||
|
||||
-simdutf_gn_build("simdutf") {
|
||||
+ cflags_cc = [
|
||||
+ "-Wno-ambiguous-reversed-operator",
|
||||
+ "-Wno-c++98-compat-extra-semi",
|
||||
+ "-Wno-unreachable-code",
|
||||
+ "-Wno-unreachable-code-break",
|
||||
+ "-Wno-unused-const-variable",
|
||||
+ "-Wno-unused-function",
|
||||
+ ]
|
||||
+}
|
||||
}
|
||||
diff --git a/deps/uv/BUILD.gn b/deps/uv/BUILD.gn
|
||||
new file mode 100644
|
||||
index 0000000000000000000000000000000000000000..7518168141db7958550c7f5dc1ed17ccdbbe4a60
|
||||
--- /dev/null
|
||||
index 8e6ac27048b5965e20f35c7a63e469beb6fa5970..7518168141db7958550c7f5dc1ed17ccdbbe4a60 100644
|
||||
--- a/deps/uv/BUILD.gn
|
||||
+++ b/deps/uv/BUILD.gn
|
||||
@@ -0,0 +1,194 @@
|
||||
@@ -1,14 +1,194 @@
|
||||
-##############################################################################
|
||||
-# #
|
||||
-# DO NOT EDIT THIS FILE! #
|
||||
-# #
|
||||
-##############################################################################
|
||||
+config("libuv_config") {
|
||||
+ include_dirs = [ "include" ]
|
||||
+
|
||||
|
||||
-# This file is used by GN for building, which is NOT the build system used for
|
||||
-# building official binaries.
|
||||
-# Please modify the gyp files if you are making changes to build system.
|
||||
+ defines = []
|
||||
+
|
||||
|
||||
-import("unofficial.gni")
|
||||
+ if (is_linux) {
|
||||
+ defines += [ "_POSIX_C_SOURCE=200112" ]
|
||||
+ }
|
||||
|
@ -1045,7 +1091,8 @@ index 0000000000000000000000000000000000000000..7518168141db7958550c7f5dc1ed17cc
|
|||
+ "src/win/winsock.c",
|
||||
+ "src/win/winsock.h",
|
||||
+ ]
|
||||
+
|
||||
|
||||
-uv_gn_build("uv") {
|
||||
+ libs += [
|
||||
+ "advapi32.lib",
|
||||
+ "iphlpapi.lib",
|
||||
|
@ -1120,13 +1167,17 @@ index 0000000000000000000000000000000000000000..7518168141db7958550c7f5dc1ed17cc
|
|||
+ "src/unix/kqueue.c",
|
||||
+ ]
|
||||
+ }
|
||||
+}
|
||||
}
|
||||
diff --git a/deps/uvwasi/BUILD.gn b/deps/uvwasi/BUILD.gn
|
||||
new file mode 100644
|
||||
index 0000000000000000000000000000000000000000..d9fcf8dc972b1caa2b7a130b1144c685316035cd
|
||||
--- /dev/null
|
||||
index 4f8fb081df805a786e523e5f0ffbb0096fdeca99..d9fcf8dc972b1caa2b7a130b1144c685316035cd 100644
|
||||
--- a/deps/uvwasi/BUILD.gn
|
||||
+++ b/deps/uvwasi/BUILD.gn
|
||||
@@ -0,0 +1,39 @@
|
||||
@@ -1,14 +1,39 @@
|
||||
-##############################################################################
|
||||
-# #
|
||||
-# DO NOT EDIT THIS FILE! #
|
||||
-# #
|
||||
-##############################################################################
|
||||
+config("uvwasi_config") {
|
||||
+ include_dirs = [ "include" ]
|
||||
+}
|
||||
|
@ -1146,14 +1197,19 @@ index 0000000000000000000000000000000000000000..d9fcf8dc972b1caa2b7a130b1144c685
|
|||
+ }
|
||||
+
|
||||
+ deps = [ "../../deps/uv" ]
|
||||
+
|
||||
|
||||
-# This file is used by GN for building, which is NOT the build system used for
|
||||
-# building official binaries.
|
||||
-# Please modify the gyp files if you are making changes to build system.
|
||||
+ public_configs = [ ":uvwasi_config" ]
|
||||
+
|
||||
|
||||
-import("unofficial.gni")
|
||||
+ cflags_c = []
|
||||
+ if (!is_win) {
|
||||
+ cflags_c += [ "-fvisibility=hidden" ]
|
||||
+ }
|
||||
+
|
||||
|
||||
-uvwasi_gn_build("uvwasi") {
|
||||
+ sources = [
|
||||
+ "src/clocks.c",
|
||||
+ "src/fd_table.c",
|
||||
|
@ -1165,13 +1221,23 @@ index 0000000000000000000000000000000000000000..d9fcf8dc972b1caa2b7a130b1144c685
|
|||
+ "src/wasi_rights.c",
|
||||
+ "src/wasi_serdes.c"
|
||||
+ ]
|
||||
}
|
||||
diff --git a/electron_node.gni b/electron_node.gni
|
||||
new file mode 100644
|
||||
index 0000000000000000000000000000000000000000..af9cbada10203b387fb9732b346583b1c4349223
|
||||
--- /dev/null
|
||||
+++ b/electron_node.gni
|
||||
@@ -0,0 +1,4 @@
|
||||
+declare_args() {
|
||||
+ # Allows embedders to override the NODE_MODULE_VERSION define
|
||||
+ node_module_version = ""
|
||||
+}
|
||||
diff --git a/filenames.json b/filenames.json
|
||||
new file mode 100644
|
||||
index 0000000000000000000000000000000000000000..cf88cae11d5fe0f4436688d41f4bf90892392d36
|
||||
index 0000000000000000000000000000000000000000..4404338bb5d576b341cae3bf79c84334fb05654f
|
||||
--- /dev/null
|
||||
+++ b/filenames.json
|
||||
@@ -0,0 +1,732 @@
|
||||
@@ -0,0 +1,733 @@
|
||||
+// This file is automatically generated by generate_gn_filenames_json.py
|
||||
+// DO NOT EDIT
|
||||
+{
|
||||
|
@ -1389,6 +1455,7 @@ index 0000000000000000000000000000000000000000..cf88cae11d5fe0f4436688d41f4bf908
|
|||
+ "lib/internal/blocklist.js",
|
||||
+ "lib/internal/bootstrap/node.js",
|
||||
+ "lib/internal/bootstrap/realm.js",
|
||||
+ "lib/internal/bootstrap/shadow_realm.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",
|
||||
|
@ -1492,6 +1559,7 @@ index 0000000000000000000000000000000000000000..cf88cae11d5fe0f4436688d41f4bf908
|
|||
+ "lib/internal/modules/helpers.js",
|
||||
+ "lib/internal/modules/package_json_reader.js",
|
||||
+ "lib/internal/modules/run_main.js",
|
||||
+ "lib/internal/navigator.js",
|
||||
+ "lib/internal/net.js",
|
||||
+ "lib/internal/options.js",
|
||||
+ "lib/internal/per_context/domexception.js",
|
||||
|
@ -1540,7 +1608,6 @@ index 0000000000000000000000000000000000000000..cf88cae11d5fe0f4436688d41f4bf908
|
|||
+ "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",
|
||||
|
@ -1557,7 +1624,6 @@ index 0000000000000000000000000000000000000000..cf88cae11d5fe0f4436688d41f4bf908
|
|||
+ "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/coverage.js",
|
||||
|
@ -1566,6 +1632,7 @@ index 0000000000000000000000000000000000000000..cf88cae11d5fe0f4436688d41f4bf908
|
|||
+ "lib/internal/test_runner/mock/mock_timers.js",
|
||||
+ "lib/internal/test_runner/reporter/dot.js",
|
||||
+ "lib/internal/test_runner/reporter/junit.js",
|
||||
+ "lib/internal/test_runner/reporter/lcov.js",
|
||||
+ "lib/internal/test_runner/reporter/spec.js",
|
||||
+ "lib/internal/test_runner/reporter/tap.js",
|
||||
+ "lib/internal/test_runner/reporter/v8-serializer.js",
|
||||
|
@ -1904,26 +1971,24 @@ index 0000000000000000000000000000000000000000..cf88cae11d5fe0f4436688d41f4bf908
|
|||
+ "deps/postject/postject-api.h"
|
||||
+ ]
|
||||
+}
|
||||
diff --git a/node.gni b/node.gni
|
||||
new file mode 100644
|
||||
index 0000000000000000000000000000000000000000..af9cbada10203b387fb9732b346583b1c4349223
|
||||
--- /dev/null
|
||||
+++ b/node.gni
|
||||
@@ -0,0 +1,4 @@
|
||||
+declare_args() {
|
||||
+ # Allows embedders to override the NODE_MODULE_VERSION define
|
||||
+ node_module_version = ""
|
||||
+}
|
||||
diff --git a/src/inspector/BUILD.gn b/src/inspector/BUILD.gn
|
||||
new file mode 100644
|
||||
index 0000000000000000000000000000000000000000..4ab828dcbf322a9e28674e48c4a6868bd1321be2
|
||||
--- /dev/null
|
||||
index 909fd14345fcd988c381e640280f4b33f2e0c351..cb0e4558436ab7a109cadf439d49413b0f569a5a 100644
|
||||
--- a/src/inspector/BUILD.gn
|
||||
+++ b/src/inspector/BUILD.gn
|
||||
@@ -0,0 +1,200 @@
|
||||
@@ -1,14 +1,203 @@
|
||||
-##############################################################################
|
||||
-# #
|
||||
-# DO NOT EDIT THIS FILE! #
|
||||
-# #
|
||||
-##############################################################################
|
||||
+import("//v8/gni/v8.gni")
|
||||
+
|
||||
|
||||
-# This file is used by GN for building, which is NOT the build system used for
|
||||
-# building official binaries.
|
||||
-# Please modify the gyp files if you are making changes to build system.
|
||||
+inspector_protocol_dir = "../../tools/inspector_protocol"
|
||||
+
|
||||
|
||||
-import("unofficial.gni")
|
||||
+_protocol_generated = [
|
||||
+ "protocol/Forward.h",
|
||||
+ "protocol/Protocol.cpp",
|
||||
|
@ -1935,7 +2000,8 @@ index 0000000000000000000000000000000000000000..4ab828dcbf322a9e28674e48c4a6868b
|
|||
+ "protocol/NodeRuntime.cpp",
|
||||
+ "protocol/NodeRuntime.h",
|
||||
+]
|
||||
+
|
||||
|
||||
-inspector_gn_build("inspector") {
|
||||
+# These are from node_protocol_config.json
|
||||
+# These convoluted path hacks are to work around the fact that node.js is very
|
||||
+# confused about what paths are in its includes, without changing node at all.
|
||||
|
@ -1982,7 +2048,10 @@ index 0000000000000000000000000000000000000000..4ab828dcbf322a9e28674e48c4a6868b
|
|||
+ "../../deps/simdutf",
|
||||
+ "//third_party/icu:icuuc",
|
||||
+ ]
|
||||
+ configs += [ "../..:node_internal_config" ]
|
||||
+ configs += [
|
||||
+ "../..:node_internal_config",
|
||||
+ "../..:node_lib_config",
|
||||
+ ]
|
||||
+ public_configs = [ ":inspector_config" ]
|
||||
+}
|
||||
+
|
||||
|
@ -2119,12 +2188,12 @@ index 0000000000000000000000000000000000000000..4ab828dcbf322a9e28674e48c4a6868b
|
|||
+ ]
|
||||
+ script = "../../tools/compress_json.py"
|
||||
+ args = rebase_path(inputs + outputs, root_build_dir)
|
||||
+}
|
||||
}
|
||||
diff --git a/src/node_builtins.cc b/src/node_builtins.cc
|
||||
index 84815969b6d1faa7cc3ed177e04248d9cb074596..80b36dc1aefca4d5d4124d7f84b12b9762a8de2c 100644
|
||||
index bafd8d4b8581f0aee6cb1f30b810c8dfc46c2ce9..453d874efff767a95ef25fad7005ac11717f0c67 100644
|
||||
--- a/src/node_builtins.cc
|
||||
+++ b/src/node_builtins.cc
|
||||
@@ -738,6 +738,7 @@ void BuiltinLoader::RegisterExternalReferences(
|
||||
@@ -739,6 +739,7 @@ void BuiltinLoader::RegisterExternalReferences(
|
||||
registry->Register(GetNatives);
|
||||
|
||||
RegisterExternalReferencesForInternalizedBuiltinCode(registry);
|
||||
|
|
|
@ -0,0 +1,171 @@
|
|||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: Cheng Zhao <zcbenz@gmail.com>
|
||||
Date: Fri, 12 Jan 2024 08:46:57 +0900
|
||||
Subject: build: do not rely on gn_helpers in GN build
|
||||
|
||||
Backport https://github.com/nodejs/node/pull/51439
|
||||
|
||||
diff --git a/deps/ngtcp2/unofficial.gni b/deps/ngtcp2/unofficial.gni
|
||||
index a304cf4aded42d27a1656be36f2d9e1e2b1818c9..838f5d2402cfd6265f913fa1afa57c1c14ed6eca 100644
|
||||
--- a/deps/ngtcp2/unofficial.gni
|
||||
+++ b/deps/ngtcp2/unofficial.gni
|
||||
@@ -7,7 +7,7 @@
|
||||
# building official binaries.
|
||||
# Please edit the gyp files if you are making changes to build system.
|
||||
|
||||
-import("//node/node.gni")
|
||||
+import("../../node.gni")
|
||||
|
||||
# The actual configurations are put inside a template in unofficial.gni to
|
||||
# prevent accidental edits from contributors.
|
||||
diff --git a/tools/gypi_to_gn.py b/tools/gypi_to_gn.py
|
||||
index 47182d8017bfc2e4c156d43a868eaa3df15ed3e2..8a094bd7cf844f880d20a9015e76eefe350af592 100755
|
||||
--- a/tools/gypi_to_gn.py
|
||||
+++ b/tools/gypi_to_gn.py
|
||||
@@ -77,29 +77,119 @@ the input will be replaced with "bar":
|
||||
from __future__ import absolute_import
|
||||
from __future__ import print_function
|
||||
from optparse import OptionParser
|
||||
-import os
|
||||
import sys
|
||||
|
||||
|
||||
-# Look for standalone GN distribution.
|
||||
-def FindGNPath():
|
||||
- for i in os.environ['PATH'].split(os.pathsep):
|
||||
- if i.rstrip(os.sep).endswith('gn'):
|
||||
- return i
|
||||
- return None
|
||||
+# This function is copied from build/gn_helpers.py in Chromium.
|
||||
+def ToGNString(value, pretty=False):
|
||||
+ """Returns a stringified GN equivalent of a Python value.
|
||||
|
||||
+ Args:
|
||||
+ value: The Python value to convert.
|
||||
+ pretty: Whether to pretty print. If true, then non-empty lists are rendered
|
||||
+ recursively with one item per line, with indents. Otherwise lists are
|
||||
+ rendered without new line.
|
||||
+ Returns:
|
||||
+ The stringified GN equivalent to |value|.
|
||||
|
||||
-try:
|
||||
- # May already be in the import path.
|
||||
- import gn_helpers
|
||||
-except ImportError:
|
||||
- # Add src/build to import path.
|
||||
- src_dir = os.path.abspath(os.path.join(os.path.dirname(__file__),
|
||||
- os.pardir, os.pardir))
|
||||
- sys.path.append(os.path.join(src_dir, 'build'))
|
||||
- if FindGNPath():
|
||||
- sys.path.append(os.path.join(FindGNPath(), 'build'))
|
||||
- import gn_helpers
|
||||
+ Raises:
|
||||
+ ValueError: |value| cannot be printed to GN.
|
||||
+ """
|
||||
+
|
||||
+ # Emits all output tokens without intervening whitespaces.
|
||||
+ def GenerateTokens(v, level):
|
||||
+ if isinstance(v, str):
|
||||
+ yield '"' + ''.join(TranslateToGnChars(v)) + '"'
|
||||
+
|
||||
+ elif isinstance(v, bool):
|
||||
+ yield 'true' if v else 'false'
|
||||
+
|
||||
+ elif isinstance(v, int):
|
||||
+ yield str(v)
|
||||
+
|
||||
+ elif isinstance(v, list):
|
||||
+ yield '['
|
||||
+ for i, item in enumerate(v):
|
||||
+ if i > 0:
|
||||
+ yield ','
|
||||
+ for tok in GenerateTokens(item, level + 1):
|
||||
+ yield tok
|
||||
+ yield ']'
|
||||
+
|
||||
+ elif isinstance(v, dict):
|
||||
+ if level > 0:
|
||||
+ yield '{'
|
||||
+ for key in sorted(v):
|
||||
+ if not isinstance(key, str):
|
||||
+ raise ValueError('Dictionary key is not a string.')
|
||||
+ if not key or key[0].isdigit() or not key.replace('_', '').isalnum():
|
||||
+ raise ValueError('Dictionary key is not a valid GN identifier.')
|
||||
+ yield key # No quotations.
|
||||
+ yield '='
|
||||
+ for tok in GenerateTokens(v[key], level + 1):
|
||||
+ yield tok
|
||||
+ if level > 0:
|
||||
+ yield '}'
|
||||
+
|
||||
+ else: # Not supporting float: Add only when needed.
|
||||
+ raise ValueError('Unsupported type when printing to GN.')
|
||||
+
|
||||
+ can_start = lambda tok: tok and tok not in ',}]='
|
||||
+ can_end = lambda tok: tok and tok not in ',{[='
|
||||
+
|
||||
+ # Adds whitespaces, trying to keep everything (except dicts) in 1 line.
|
||||
+ def PlainGlue(gen):
|
||||
+ prev_tok = None
|
||||
+ for i, tok in enumerate(gen):
|
||||
+ if i > 0:
|
||||
+ if can_end(prev_tok) and can_start(tok):
|
||||
+ yield '\n' # New dict item.
|
||||
+ elif prev_tok == '[' and tok == ']':
|
||||
+ yield ' ' # Special case for [].
|
||||
+ elif tok != ',':
|
||||
+ yield ' '
|
||||
+ yield tok
|
||||
+ prev_tok = tok
|
||||
+
|
||||
+ # Adds whitespaces so non-empty lists can span multiple lines, with indent.
|
||||
+ def PrettyGlue(gen):
|
||||
+ prev_tok = None
|
||||
+ level = 0
|
||||
+ for i, tok in enumerate(gen):
|
||||
+ if i > 0:
|
||||
+ if can_end(prev_tok) and can_start(tok):
|
||||
+ yield '\n' + ' ' * level # New dict item.
|
||||
+ elif tok == '=' or prev_tok in '=':
|
||||
+ yield ' ' # Separator before and after '=', on same line.
|
||||
+ if tok in ']}':
|
||||
+ level -= 1
|
||||
+ # Exclude '[]' and '{}' cases.
|
||||
+ if int(prev_tok == '[') + int(tok == ']') == 1 or \
|
||||
+ int(prev_tok == '{') + int(tok == '}') == 1:
|
||||
+ yield '\n' + ' ' * level
|
||||
+ yield tok
|
||||
+ if tok in '[{':
|
||||
+ level += 1
|
||||
+ if tok == ',':
|
||||
+ yield '\n' + ' ' * level
|
||||
+ prev_tok = tok
|
||||
+
|
||||
+ token_gen = GenerateTokens(value, 0)
|
||||
+ ret = ''.join((PrettyGlue if pretty else PlainGlue)(token_gen))
|
||||
+ # Add terminating '\n' for dict |value| or multi-line output.
|
||||
+ if isinstance(value, dict) or '\n' in ret:
|
||||
+ return ret + '\n'
|
||||
+ return ret
|
||||
+
|
||||
+
|
||||
+def TranslateToGnChars(s):
|
||||
+ for code in s.encode('utf-8'):
|
||||
+ if code in (34, 36, 92): # For '"', '$', or '\\'.
|
||||
+ yield '\\' + chr(code)
|
||||
+ elif 32 <= code < 127:
|
||||
+ yield chr(code)
|
||||
+ else:
|
||||
+ yield '$0x%02X' % code
|
||||
|
||||
|
||||
def LoadPythonDictionary(path):
|
||||
@@ -209,7 +299,7 @@ def main():
|
||||
else:
|
||||
gn_dict[gn_key] = data[key]
|
||||
|
||||
- print(gn_helpers.ToGNString(DeduplicateLists(gn_dict)))
|
||||
+ print(ToGNString(DeduplicateLists(gn_dict)))
|
||||
|
||||
if __name__ == '__main__':
|
||||
try:
|
|
@ -7,27 +7,27 @@ 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 b7f9e44f827e58ac3b9376ec291f42cceb2b28bb..24cc9efe32c083d0cecd1ae94514b5a2d24ca2d6 100644
|
||||
index f52d4f805406c513904151be90e433948764b3ad..7b790060b03cceec62bfe4c1f12d396b9cf52e8c 100644
|
||||
--- a/common.gypi
|
||||
+++ b/common.gypi
|
||||
@@ -79,6 +79,8 @@
|
||||
# TODO(refack): make v8-perfetto happen
|
||||
@@ -86,6 +86,8 @@
|
||||
'v8_use_perfetto': 0,
|
||||
'tsan%': 0,
|
||||
|
||||
+ 'using_electron_config_gypi%': 0,
|
||||
+
|
||||
##### end V8 defaults #####
|
||||
|
||||
# When building native modules using 'npm install' with the system npm,
|
||||
@@ -282,6 +284,7 @@
|
||||
'V8_DEPRECATION_WARNINGS',
|
||||
'V8_IMMINENT_DEPRECATION_WARNINGS',
|
||||
@@ -285,6 +287,7 @@
|
||||
# Defines these mostly for node-gyp to pickup.
|
||||
'defines': [
|
||||
'_GLIBCXX_USE_CXX11_ABI=1',
|
||||
+ 'ELECTRON_ENSURE_CONFIG_GYPI',
|
||||
],
|
||||
|
||||
# Forcibly disable -Werror. We support a wide range of compilers, it's
|
||||
@@ -388,6 +391,11 @@
|
||||
@@ -391,6 +394,11 @@
|
||||
}],
|
||||
],
|
||||
}],
|
||||
|
@ -36,14 +36,14 @@ index b7f9e44f827e58ac3b9376ec291f42cceb2b28bb..24cc9efe32c083d0cecd1ae94514b5a2
|
|||
+ 'USING_ELECTRON_CONFIG_GYPI',
|
||||
+ ],
|
||||
+ }],
|
||||
['v8_enable_pointer_compression == 1', {
|
||||
'defines': [
|
||||
'V8_COMPRESS_POINTERS',
|
||||
# The defines bellow must include all things from the external_v8_defines
|
||||
# list in v8/BUILD.gn.
|
||||
['v8_enable_v8_checks == 1', {
|
||||
diff --git a/configure.py b/configure.py
|
||||
index 7b80ec63a082ce93ba81ca6dd41ec03041534ff7..926659883d3bd6d447c89a50d6770988b59d6f88 100755
|
||||
index 84b016cd853080656d4dcf982e64855fcfa72a55..f0cccff0eed2ef11275d2f7ec2358276f6e10458 100755
|
||||
--- a/configure.py
|
||||
+++ b/configure.py
|
||||
@@ -1484,6 +1484,7 @@ def configure_library(lib, output, pkgname=None):
|
||||
@@ -1489,6 +1489,7 @@ def configure_library(lib, output, pkgname=None):
|
||||
|
||||
|
||||
def configure_v8(o):
|
||||
|
|
|
@ -1,55 +1,35 @@
|
|||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: Samuel Attard <sattard@salesforce.com>
|
||||
Date: Thu, 7 Jul 2022 14:42:49 -0700
|
||||
Subject: build: ensure v8 pointer compression + sandbox is enabled on 64bit
|
||||
From: Shelley Vohr <shelley.vohr@gmail.com>
|
||||
Date: Wed, 17 Jan 2024 16:01:08 +0100
|
||||
Subject: build: ensure v8_pointer_compression_sandbox is enabled on 64bit
|
||||
|
||||
Aligns common.gypi with the current build flag state of //v8.
|
||||
The defines themselves were upstreamed in https://github.com/nodejs/node/pull/50820
|
||||
but the ability to configure the variables themselves were not. This adds that back
|
||||
in.
|
||||
|
||||
Specifically enables `V8_ENABLE_SANDBOX`, `V8_SANDBOXED_POINTERS`, `V8_COMPRESS_POINTERS` and `V8_COMPRESS_POINTERS_IN_SHARED_CAGE`.
|
||||
This should be upstreamed.
|
||||
|
||||
diff --git a/common.gypi b/common.gypi
|
||||
index 225b3df380caca809926d6af9fc1001057237752..b7f9e44f827e58ac3b9376ec291f42cceb2b28bb 100644
|
||||
index 7b790060b03cceec62bfe4c1f12d396b9cf52e8c..ef8c7a0477aa9c92439846699e739eae4340b88c 100644
|
||||
--- a/common.gypi
|
||||
+++ b/common.gypi
|
||||
@@ -65,6 +65,7 @@
|
||||
# node-gyp to build addons.
|
||||
'v8_enable_pointer_compression%': 0,
|
||||
'v8_enable_31bit_smis_on_64bit_arch%': 0,
|
||||
+ 'v8_enable_sandbox%': 0,
|
||||
|
||||
# Disable v8 hugepage by default.
|
||||
'v8_enable_hugepage%': 0,
|
||||
@@ -123,6 +124,7 @@
|
||||
@@ -133,6 +133,7 @@
|
||||
['target_arch in "arm ia32 mips mipsel ppc"', {
|
||||
'v8_enable_pointer_compression': 0,
|
||||
'v8_enable_31bit_smis_on_64bit_arch': 0,
|
||||
+ 'v8_enable_sandbox': 0,
|
||||
+ 'v8_enable_sandbox': 0
|
||||
}],
|
||||
['target_arch in "ppc64 s390x"', {
|
||||
'v8_enable_backtrace': 1,
|
||||
@@ -389,9 +391,12 @@
|
||||
['v8_enable_pointer_compression == 1', {
|
||||
'defines': [
|
||||
'V8_COMPRESS_POINTERS',
|
||||
- 'V8_COMPRESS_POINTERS_IN_ISOLATE_CAGE',
|
||||
+ 'V8_COMPRESS_POINTERS_IN_SHARED_CAGE',
|
||||
],
|
||||
}],
|
||||
+ ['v8_enable_sandbox == 1', {
|
||||
+ 'defines': ['V8_ENABLE_SANDBOX']
|
||||
+ }],
|
||||
['v8_enable_pointer_compression == 1 or v8_enable_31bit_smis_on_64bit_arch == 1', {
|
||||
'defines': ['V8_31BIT_SMIS_ON_64BIT_ARCH'],
|
||||
}],
|
||||
diff --git a/configure.py b/configure.py
|
||||
index 62f041ce52bf85136175e733216671e2811a337b..7b80ec63a082ce93ba81ca6dd41ec03041534ff7 100755
|
||||
index f0cccff0eed2ef11275d2f7ec2358276f6e10458..87b647ab363219add8201966a64b539215bdee03 100755
|
||||
--- a/configure.py
|
||||
+++ b/configure.py
|
||||
@@ -1497,6 +1497,7 @@ def configure_v8(o):
|
||||
@@ -1503,6 +1503,7 @@ def configure_v8(o):
|
||||
o['variables']['v8_use_siphash'] = 0 if options.without_siphash else 1
|
||||
o['variables']['v8_enable_maglev'] = 1 if options.v8_enable_maglev else 0
|
||||
o['variables']['v8_enable_pointer_compression'] = 1 if options.enable_pointer_compression else 0
|
||||
o['variables']['v8_enable_31bit_smis_on_64bit_arch'] = 1 if options.enable_pointer_compression else 0
|
||||
+ o['variables']['v8_enable_sandbox'] = 1 if options.enable_pointer_compression else 0
|
||||
o['variables']['v8_enable_31bit_smis_on_64bit_arch'] = 1 if options.enable_pointer_compression else 0
|
||||
o['variables']['v8_enable_shared_ro_heap'] = 0 if options.enable_pointer_compression or options.disable_shared_ro_heap else 1
|
||||
o['variables']['v8_trace_maps'] = 1 if options.trace_maps else 0
|
||||
o['variables']['node_use_v8_platform'] = b(not options.without_v8_platform)
|
||||
o['variables']['v8_enable_extensible_ro_snapshot'] = 0
|
||||
|
|
|
@ -34,7 +34,7 @@ index 99212fa713bf3f767d4604906e41d9b279447239..4e32a274a63c8244ce3168d0c5cc5620
|
|||
let kResistStopPropagation;
|
||||
|
||||
diff --git a/src/node_builtins.cc b/src/node_builtins.cc
|
||||
index 80b36dc1aefca4d5d4124d7f84b12b9762a8de2c..f3cda64beaa1403cb33f1b0bd8089f3dfcbfc8b9 100644
|
||||
index 453d874efff767a95ef25fad7005ac11717f0c67..bcef04f980d1b1f010c5349ecbfca8080f39b308 100644
|
||||
--- a/src/node_builtins.cc
|
||||
+++ b/src/node_builtins.cc
|
||||
@@ -35,6 +35,7 @@ using v8::Value;
|
||||
|
|
|
@ -18,10 +18,10 @@ See https://gist.github.com/codebytere/275ec8923253fd6559b3d36115f7b31b for more
|
|||
This should be fixed and re-enabled on all platforms.
|
||||
|
||||
diff --git a/BUILD.gn b/BUILD.gn
|
||||
index 24c122008e0fc009833cf9189ebf43883207c754..1f0263b06969e099a5b3aaf09d36a66c43dd80fc 100644
|
||||
index 541e7d2b8ee05677b64a3ea39c1422560fd5df75..8d63fea3304b36654992fe718ceeb3931ef86d39 100644
|
||||
--- a/BUILD.gn
|
||||
+++ b/BUILD.gn
|
||||
@@ -178,6 +178,10 @@ config("node_internal_config") {
|
||||
@@ -181,6 +181,10 @@ config("node_internal_config") {
|
||||
}
|
||||
defines += [ "NODE_ARCH=\"$node_arch\"" ]
|
||||
|
||||
|
@ -33,10 +33,10 @@ index 24c122008e0fc009833cf9189ebf43883207c754..1f0263b06969e099a5b3aaf09d36a66c
|
|||
node_platform = "win32"
|
||||
} else if (target_os == "mac") {
|
||||
diff --git a/src/env.cc b/src/env.cc
|
||||
index 1d8df40c3446ac9c72c5f0ad24edf0b8a96cf16b..25b81dee18aeeb1bd0452ba0b66085d451723709 100644
|
||||
index a429d5526d0af66eef94132b196e42994e3f6448..ba575a04340b91709fb6c8710ab160a4ca1f8b77 100644
|
||||
--- a/src/env.cc
|
||||
+++ b/src/env.cc
|
||||
@@ -542,7 +542,8 @@ IsolateData::IsolateData(Isolate* isolate,
|
||||
@@ -546,7 +546,8 @@ IsolateData::IsolateData(Isolate* isolate,
|
||||
// for embedder ID, V8 could accidentally enable cppgc on them. So
|
||||
// safe guard against this.
|
||||
DCHECK_NE(descriptor.wrappable_type_index, BaseObject::kSlot);
|
||||
|
@ -46,7 +46,7 @@ index 1d8df40c3446ac9c72c5f0ad24edf0b8a96cf16b..25b81dee18aeeb1bd0452ba0b66085d4
|
|||
cpp_heap_ = CppHeap::Create(
|
||||
platform,
|
||||
CppHeapCreateParams{
|
||||
@@ -550,6 +551,7 @@ IsolateData::IsolateData(Isolate* isolate,
|
||||
@@ -554,6 +555,7 @@ IsolateData::IsolateData(Isolate* isolate,
|
||||
WrapperDescriptor(
|
||||
BaseObject::kEmbedderType, BaseObject::kSlot, cppgc_id)});
|
||||
isolate->AttachCppHeap(cpp_heap_.get());
|
||||
|
|
|
@ -8,7 +8,7 @@ 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 ea3b411a78495d0414b1956503b86cbd5f0ed765..ad4946a6d121d38f413878a3dcc360012d568ef6 100644
|
||||
index 1f3b719048f2477de183e2856b9b8eee8502f708..21116088c101f4679b5a5f41762ce710368e69ed 100644
|
||||
--- a/lib/internal/modules/cjs/loader.js
|
||||
+++ b/lib/internal/modules/cjs/loader.js
|
||||
@@ -1351,6 +1351,13 @@ Module.prototype._compile = function(content, filename) {
|
||||
|
@ -26,10 +26,10 @@ index ea3b411a78495d0414b1956503b86cbd5f0ed765..ad4946a6d121d38f413878a3dcc36001
|
|||
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 66dfd7c1e521f38691e4656ac7ab0572a2fe75da..5db54daaa9e7066561d1621f2f0a01032ca7ff22 100644
|
||||
index fc8f61ee6d30cf18951ec7a5eb5f09a9583a85ae..61858f6bdcdbc231d7e2327e42732ad928d47ac7 100644
|
||||
--- a/lib/internal/process/pre_execution.js
|
||||
+++ b/lib/internal/process/pre_execution.js
|
||||
@@ -218,12 +218,14 @@ function patchProcessObject(expandArgv1) {
|
||||
@@ -238,12 +238,14 @@ function patchProcessObject(expandArgv1) {
|
||||
if (expandArgv1 && process.argv[1] &&
|
||||
!StringPrototypeStartsWith(process.argv[1], '-')) {
|
||||
// Expand process.argv[1] into a full path.
|
||||
|
|
|
@ -11,10 +11,10 @@ its own blended handler between Node and Blink.
|
|||
Not upstreamable.
|
||||
|
||||
diff --git a/lib/internal/modules/esm/utils.js b/lib/internal/modules/esm/utils.js
|
||||
index 41077285452eac05766a22c2e1d252868e7e548b..2246e57efcf0b95903644d643ad5572717ecdaf4 100644
|
||||
index 003ae7eb987f03611444f02695bc8582e0ac6a67..bbf1df480bc6ec90ee3ac29312dc89ff8bf94ab3 100644
|
||||
--- a/lib/internal/modules/esm/utils.js
|
||||
+++ b/lib/internal/modules/esm/utils.js
|
||||
@@ -22,7 +22,7 @@ const {
|
||||
@@ -23,7 +23,7 @@ const {
|
||||
ERR_VM_DYNAMIC_IMPORT_CALLBACK_MISSING,
|
||||
ERR_INVALID_ARG_VALUE,
|
||||
} = require('internal/errors').codes;
|
||||
|
@ -23,14 +23,14 @@ index 41077285452eac05766a22c2e1d252868e7e548b..2246e57efcf0b95903644d643ad55727
|
|||
const {
|
||||
loadPreloadModules,
|
||||
initializeFrozenIntrinsics,
|
||||
@@ -190,12 +190,13 @@ let _isLoaderWorker = false;
|
||||
* @param {boolean} [isLoaderWorker=false] - A boolean indicating whether the loader is a worker or not.
|
||||
@@ -221,12 +221,13 @@ let _forceDefaultLoader = false;
|
||||
* @param {boolean} [forceDefaultLoader=false] - A boolean indicating disabling custom loaders.
|
||||
*/
|
||||
function initializeESM(isLoaderWorker = false) {
|
||||
function initializeESM(forceDefaultLoader = false) {
|
||||
+ const shouldSetOnIsolate = !getEmbedderOptions().shouldNotRegisterESMLoader;
|
||||
_isLoaderWorker = isLoaderWorker;
|
||||
_forceDefaultLoader = forceDefaultLoader;
|
||||
initializeDefaultConditions();
|
||||
// Setup per-isolate callbacks that locate data or callbacks that we keep
|
||||
// Setup per-realm callbacks that locate data or callbacks that we keep
|
||||
// track of for different ESM modules.
|
||||
- setInitializeImportMetaObjectCallback(initializeImportMetaObject);
|
||||
- setImportModuleDynamicallyCallback(importModuleDynamicallyCallback);
|
||||
|
@ -40,10 +40,10 @@ index 41077285452eac05766a22c2e1d252868e7e548b..2246e57efcf0b95903644d643ad55727
|
|||
|
||||
/**
|
||||
diff --git a/src/module_wrap.cc b/src/module_wrap.cc
|
||||
index 52c30dcb47d1faba0c2267e4381a624e450baa02..ba4c1a0d5a987e4d410b49f5c47166943bd101a6 100644
|
||||
index 895ff3a5948add3513700ecc2f32fce4c2fbe4eb..3182a5e4aad2ba0be2b6769edb696b815ce39a61 100644
|
||||
--- a/src/module_wrap.cc
|
||||
+++ b/src/module_wrap.cc
|
||||
@@ -547,7 +547,7 @@ MaybeLocal<Module> ModuleWrap::ResolveModuleCallback(
|
||||
@@ -554,7 +554,7 @@ MaybeLocal<Module> ModuleWrap::ResolveModuleCallback(
|
||||
return module->module_.Get(isolate);
|
||||
}
|
||||
|
||||
|
@ -52,15 +52,15 @@ index 52c30dcb47d1faba0c2267e4381a624e450baa02..ba4c1a0d5a987e4d410b49f5c4716694
|
|||
Local<Context> context,
|
||||
Local<v8::Data> host_defined_options,
|
||||
Local<Value> resource_name,
|
||||
@@ -608,12 +608,13 @@ void ModuleWrap::SetImportModuleDynamicallyCallback(
|
||||
Environment* env = Environment::GetCurrent(args);
|
||||
@@ -618,12 +618,13 @@ void ModuleWrap::SetImportModuleDynamicallyCallback(
|
||||
Realm* realm = Realm::GetCurrent(args);
|
||||
HandleScope handle_scope(isolate);
|
||||
|
||||
- CHECK_EQ(args.Length(), 1);
|
||||
+ CHECK_EQ(args.Length(), 2);
|
||||
CHECK(args[0]->IsFunction());
|
||||
Local<Function> import_callback = args[0].As<Function>();
|
||||
env->set_host_import_module_dynamically_callback(import_callback);
|
||||
realm->set_host_import_module_dynamically_callback(import_callback);
|
||||
|
||||
- isolate->SetHostImportModuleDynamicallyCallback(ImportModuleDynamically);
|
||||
+ if (args[1]->IsBoolean() && args[1]->BooleanValue(isolate))
|
||||
|
@ -68,15 +68,15 @@ index 52c30dcb47d1faba0c2267e4381a624e450baa02..ba4c1a0d5a987e4d410b49f5c4716694
|
|||
}
|
||||
|
||||
void ModuleWrap::HostInitializeImportMetaObjectCallback(
|
||||
@@ -650,13 +651,14 @@ void ModuleWrap::SetInitializeImportMetaObjectCallback(
|
||||
Environment* env = Environment::GetCurrent(args);
|
||||
Isolate* isolate = env->isolate();
|
||||
@@ -665,13 +666,14 @@ void ModuleWrap::SetInitializeImportMetaObjectCallback(
|
||||
Realm* realm = Realm::GetCurrent(args);
|
||||
Isolate* isolate = realm->isolate();
|
||||
|
||||
- CHECK_EQ(args.Length(), 1);
|
||||
+ CHECK_EQ(args.Length(), 2);
|
||||
CHECK(args[0]->IsFunction());
|
||||
Local<Function> import_meta_callback = args[0].As<Function>();
|
||||
env->set_host_initialize_import_meta_object_callback(import_meta_callback);
|
||||
realm->set_host_initialize_import_meta_object_callback(import_meta_callback);
|
||||
|
||||
- isolate->SetHostInitializeImportMetaObjectCallback(
|
||||
- HostInitializeImportMetaObjectCallback);
|
||||
|
@ -87,10 +87,10 @@ index 52c30dcb47d1faba0c2267e4381a624e450baa02..ba4c1a0d5a987e4d410b49f5c4716694
|
|||
|
||||
MaybeLocal<Value> ModuleWrap::SyntheticModuleEvaluationStepsCallback(
|
||||
diff --git a/src/module_wrap.h b/src/module_wrap.h
|
||||
index 1fc801edced9c5e44613846b4dc555804c5bae97..767d183c6b6b6d97726cf5d63c0b202bd9ae10a6 100644
|
||||
index e17048357feca2419087621ed280de30882a90bc..061117dc3182d63e35d7e99ffd95801f96356322 100644
|
||||
--- a/src/module_wrap.h
|
||||
+++ b/src/module_wrap.h
|
||||
@@ -30,7 +30,14 @@ enum HostDefinedOptions : int {
|
||||
@@ -31,7 +31,14 @@ enum HostDefinedOptions : int {
|
||||
kLength = 9,
|
||||
};
|
||||
|
||||
|
@ -106,16 +106,16 @@ index 1fc801edced9c5e44613846b4dc555804c5bae97..767d183c6b6b6d97726cf5d63c0b202b
|
|||
public:
|
||||
enum InternalFields {
|
||||
kModuleSlot = BaseObject::kInternalFieldCount,
|
||||
@@ -65,6 +72,8 @@ class ModuleWrap : public BaseObject {
|
||||
@@ -68,6 +75,8 @@ class ModuleWrap : public BaseObject {
|
||||
return true;
|
||||
}
|
||||
|
||||
+ static ModuleWrap* GetFromModule(node::Environment*, v8::Local<v8::Module>);
|
||||
+
|
||||
private:
|
||||
ModuleWrap(Environment* env,
|
||||
ModuleWrap(Realm* realm,
|
||||
v8::Local<v8::Object> object,
|
||||
@@ -99,7 +108,6 @@ class ModuleWrap : public BaseObject {
|
||||
@@ -102,7 +111,6 @@ class ModuleWrap : public BaseObject {
|
||||
v8::Local<v8::String> specifier,
|
||||
v8::Local<v8::FixedArray> import_attributes,
|
||||
v8::Local<v8::Module> referrer);
|
||||
|
|
|
@ -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 942d7cc1305eb4cf327de5666551435802f0dbac..991c65215488b9526758b9aca96842ad17fc018e 100644
|
||||
index fbaf641789e8dc2b1ba991ad7ee755271e756ee1..53bc3ce5e144f5988a9164c41e6bbc6cc44582d2 100644
|
||||
--- a/lib/.eslintrc.yaml
|
||||
+++ b/lib/.eslintrc.yaml
|
||||
@@ -33,10 +33,6 @@ rules:
|
||||
|
@ -24,7 +24,7 @@ index 942d7cc1305eb4cf327de5666551435802f0dbac..991c65215488b9526758b9aca96842ad
|
|||
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 12ae4a9b23212d3f8ff1566a1c2b815a47d3838a..4460042d7bfbb8286a9b2abcbfb9e44f21b5d944 100644
|
||||
index 56697c3b2c2209ff58b8fefbccec03c7e3d9f9a0..4eb7230edcd0fb3d21e80218f6a912eb308fc89d 100644
|
||||
--- a/lib/internal/main/worker_thread.js
|
||||
+++ b/lib/internal/main/worker_thread.js
|
||||
@@ -112,7 +112,7 @@ port.on('message', (message) => {
|
||||
|
|
|
@ -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 569dafe82df83db02d93b0e58231ef804eb54be8..c6b8c3b5b36ea25a31bdf3c6a48ef20f3c1b6577 100644
|
||||
index 8591faab8eaf6f0e6c745e2a6e9f60a468c3efcc..32efaf5148bd6620210c58a95ef3c53bc57a4ea1 100644
|
||||
--- a/src/node_errors.h
|
||||
+++ b/src/node_errors.h
|
||||
@@ -218,7 +218,7 @@ inline v8::Local<v8::Value> ERR_BUFFER_TOO_LARGE(v8::Isolate* isolate) {
|
||||
@@ -222,7 +222,7 @@ inline v8::Local<v8::Value> ERR_BUFFER_TOO_LARGE(v8::Isolate* isolate) {
|
||||
char message[128];
|
||||
snprintf(message, sizeof(message),
|
||||
"Cannot create a Buffer larger than 0x%zx bytes",
|
||||
|
|
|
@ -24,10 +24,10 @@ index 97257d47c6173872e55facf6f92801bd2fc3564b..8cdee730101fbdc79415654aa6fe4015
|
|||
Environment* env = Environment::GetCurrent(args);
|
||||
|
||||
diff --git a/src/node_binding.h b/src/node_binding.h
|
||||
index 9f0692ca4e190bde251d4825aa9abac3d66b6ac6..f4024a05901f72f85e097a8ab6ddbd5812e9ba16 100644
|
||||
index 7256bf2bbcf73214a25e61156305cc212b6f2451..d129981ad8588376eeee61155964062f624695d6 100644
|
||||
--- a/src/node_binding.h
|
||||
+++ b/src/node_binding.h
|
||||
@@ -134,6 +134,8 @@ void GetInternalBinding(const v8::FunctionCallbackInfo<v8::Value>& args);
|
||||
@@ -137,6 +137,8 @@ void GetInternalBinding(const v8::FunctionCallbackInfo<v8::Value>& args);
|
||||
void GetLinkedBinding(const v8::FunctionCallbackInfo<v8::Value>& args);
|
||||
void DLOpen(const v8::FunctionCallbackInfo<v8::Value>& args);
|
||||
|
||||
|
|
|
@ -7,7 +7,7 @@ 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 793dc72e0dbad819a1c3a51521b4a39b76c7015d..222c78ef0cb9904742fd44f8182278ab1f50cd59 100644
|
||||
index d5124e73e7c4c6b631ccfedf407e02bc444b428f..564de2990c09a54693686666f9ad66398ff76ab5 100644
|
||||
--- a/src/env-inl.h
|
||||
+++ b/src/env-inl.h
|
||||
@@ -677,6 +677,10 @@ inline bool Environment::no_global_search_paths() const {
|
||||
|
@ -22,7 +22,7 @@ index 793dc72e0dbad819a1c3a51521b4a39b76c7015d..222c78ef0cb9904742fd44f8182278ab
|
|||
// configure --no-browser-globals
|
||||
#ifdef NODE_NO_BROWSER_GLOBALS
|
||||
diff --git a/src/env.h b/src/env.h
|
||||
index afe67d2237ae6933de44dd1141cf388e9a48cee3..87df6e1f32e584aa0c6ae21856299fff31d67669 100644
|
||||
index 1047f1d794da2a3a035df5eaab1c809a7fca3d23..448075e354c760a2dbd1dd763f40b7a645730250 100644
|
||||
--- a/src/env.h
|
||||
+++ b/src/env.h
|
||||
@@ -787,6 +787,7 @@ class Environment : public MemoryRetainer {
|
||||
|
|
|
@ -6,20 +6,19 @@ 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 917ba90a1c8bbbff5d86e5f2079d1ce67237280e..66dfd7c1e521f38691e4656ac7ab0572a2fe75da 100644
|
||||
index 9142fed75e9050fcc17c01208e82f1bc57923fcd..fc8f61ee6d30cf18951ec7a5eb5f09a9583a85ae 100644
|
||||
--- a/lib/internal/process/pre_execution.js
|
||||
+++ b/lib/internal/process/pre_execution.js
|
||||
@@ -67,6 +67,8 @@ function prepareWorkerThreadExecution() {
|
||||
@@ -87,6 +87,7 @@ function prepareShadowRealmExecution() {
|
||||
});
|
||||
}
|
||||
|
||||
+
|
||||
+let processLinkedBinding = process._linkedBinding;
|
||||
function prepareExecution(options) {
|
||||
const { expandArgv1, initializeModules, isMainThread } = options;
|
||||
|
||||
@@ -172,12 +174,17 @@ function setupUserModules(isLoaderWorker = false) {
|
||||
loadPreloadModules();
|
||||
@@ -193,12 +194,17 @@ function setupUserModules(forceDefaultLoader = false) {
|
||||
}
|
||||
// Need to be done after --require setup.
|
||||
initializeFrozenIntrinsics();
|
||||
+ setupAsarSupport();
|
||||
|
|
|
@ -10,7 +10,7 @@ already been called.
|
|||
This should be upstreamed.
|
||||
|
||||
diff --git a/src/node.cc b/src/node.cc
|
||||
index a9336a14304fc673c02ae5b7e5ca82aec9fa6697..7a6a9cdddf00c91612c2bcabf40a5c4af16424df 100644
|
||||
index 524f80ee69ee5248e045a2b61faf5610c9ba4285..971668792eabe5be299849b5a3fd8a2790a2210a 100644
|
||||
--- a/src/node.cc
|
||||
+++ b/src/node.cc
|
||||
@@ -605,6 +605,7 @@ static void PlatformInit(ProcessInitializationFlags::Flags flags) {
|
||||
|
|
|
@ -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 344f7753dab2b16bc38ff808d29c031a363aaaf2..947c2c19a22f7bf8a9d82667a85a18f9252e6d65 100644
|
||||
index 28873dbe4024df70a43fdc01ebd70c09acd118b0..f270efded6930f9fda56c7e277e0e3b4de6c91f4 100644
|
||||
--- a/src/util.h
|
||||
+++ b/src/util.h
|
||||
@@ -130,10 +130,10 @@ void DumpBacktrace(FILE* fp);
|
||||
@@ -131,10 +131,10 @@ void DumpJavaScriptBacktrace(FILE* fp);
|
||||
do { \
|
||||
/* Make sure that this struct does not end up in inline code, but */ \
|
||||
/* rather in a read-only data section when modifying this code. */ \
|
||||
|
|
|
@ -7,10 +7,10 @@ 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 4589f515178093402b4abc265af041037ee22f3b..225b3df380caca809926d6af9fc1001057237752 100644
|
||||
index db09a8a33df06663b05d65828b51cfd35eb6fa79..f52d4f805406c513904151be90e433948764b3ad 100644
|
||||
--- a/common.gypi
|
||||
+++ b/common.gypi
|
||||
@@ -80,6 +80,23 @@
|
||||
@@ -88,6 +88,23 @@
|
||||
|
||||
##### end V8 defaults #####
|
||||
|
||||
|
|
|
@ -13,7 +13,7 @@ if the override has been disabled.
|
|||
This will be upstreamed.
|
||||
|
||||
diff --git a/lib/assert.js b/lib/assert.js
|
||||
index b7d7a3da01d520984a5903cb9a0f1c288e0d5fa0..66a60c3726cd57e65db3e4fb57fb85721368c3ce 100644
|
||||
index 9dfcf80a913942c93b206c6f871ac7807c7a7e81..4d25a22aedf7d7182bb709864e29b7e725336323 100644
|
||||
--- a/lib/assert.js
|
||||
+++ b/lib/assert.js
|
||||
@@ -66,6 +66,7 @@ const { inspect } = require('internal/util/inspect');
|
||||
|
@ -24,7 +24,7 @@ index b7d7a3da01d520984a5903cb9a0f1c288e0d5fa0..66a60c3726cd57e65db3e4fb57fb8572
|
|||
const { isError, deprecate } = require('internal/util');
|
||||
|
||||
const errorCache = new SafeMap();
|
||||
@@ -293,8 +294,16 @@ function getErrMessage(message, fn) {
|
||||
@@ -294,8 +295,16 @@ function getErrMessage(message, fn) {
|
||||
ErrorCaptureStackTrace(err, fn);
|
||||
if (errorStackTraceLimitIsWritable) Error.stackTraceLimit = tmpLimit;
|
||||
|
||||
|
@ -41,10 +41,10 @@ index b7d7a3da01d520984a5903cb9a0f1c288e0d5fa0..66a60c3726cd57e65db3e4fb57fb8572
|
|||
+ Error.prepareStackTrace = tmpPrepare;
|
||||
+ }
|
||||
|
||||
const filename = call.getFileName();
|
||||
let filename = call.getFileName();
|
||||
const line = call.getLineNumber() - 1;
|
||||
diff --git a/src/api/environment.cc b/src/api/environment.cc
|
||||
index c02906eacd90ac27d618e7578d1f928f16a858f7..74b4e15b8230c6380d41e84aa504824bb79b2ee5 100644
|
||||
index 11f8b8dea7bf4119c2d99ee451e3f1bc7bde8902..9045de3b17c93c4864a1bb1024b08f7d1ffa83be 100644
|
||||
--- a/src/api/environment.cc
|
||||
+++ b/src/api/environment.cc
|
||||
@@ -277,6 +277,9 @@ void SetIsolateErrorHandlers(v8::Isolate* isolate, const IsolateSettings& s) {
|
||||
|
@ -58,10 +58,10 @@ index c02906eacd90ac27d618e7578d1f928f16a858f7..74b4e15b8230c6380d41e84aa504824b
|
|||
}
|
||||
|
||||
diff --git a/src/node_options.cc b/src/node_options.cc
|
||||
index faca807e31daaadb0103556001a16629a3822c1f..9011eda7ce2435c2f859cacbac55cdc6182ebccc 100644
|
||||
index a3d25cdd52f18e319ae3ac81437c8a0206b18690..48ce3f3b68a94fc35e5ce93a385ddbebb03741b9 100644
|
||||
--- a/src/node_options.cc
|
||||
+++ b/src/node_options.cc
|
||||
@@ -1262,6 +1262,11 @@ void GetEmbedderOptions(const FunctionCallbackInfo<Value>& args) {
|
||||
@@ -1269,6 +1269,11 @@ void GetEmbedderOptions(const FunctionCallbackInfo<Value>& args) {
|
||||
Local<Context> context = env->context();
|
||||
Local<Object> ret = Object::New(isolate);
|
||||
|
||||
|
|
|
@ -1,33 +0,0 @@
|
|||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: Samuel Attard <marshallofsound@electronjs.org>
|
||||
Date: Wed, 15 Nov 2023 13:31:14 -0800
|
||||
Subject: Fix AVX detection
|
||||
|
||||
The old/faulty code would try to use AVX/AVX2 if either the SSE bit or
|
||||
the AVX bit were set in XCR0, but did not check if both bits were set.
|
||||
|
||||
In most cases, this still worked, but on some machines, enabling linux
|
||||
kernel mitigations for the "gather data sampling" vulnerability results
|
||||
in only the SSE bit but not the AVX bit being set, thus resulting in an
|
||||
illegal instruction and crashing the application.
|
||||
|
||||
Fix this by checking that both bits are set.
|
||||
|
||||
Fixes: 4bbb590 ("Proper check of CPU's AVX2 feature support (with MSVC support)")
|
||||
Signed-off-by: Pascal Ernster <git@hardfalcon.net>
|
||||
|
||||
Cherry-Picked from https://github.com/aklomp/base64/commit/9003f9b183327df80fda97aa82dfc8054e1d3dce
|
||||
|
||||
diff --git a/deps/base64/base64/lib/codec_choose.c b/deps/base64/base64/lib/codec_choose.c
|
||||
index 6a07d6a74cc24f61cf2b16d13c075234d5c7e2a3..f4215f1ef9d42087ef6735e6817c714ecc43a0ca 100644
|
||||
--- a/deps/base64/base64/lib/codec_choose.c
|
||||
+++ b/deps/base64/base64/lib/codec_choose.c
|
||||
@@ -194,7 +194,7 @@ codec_choose_x86 (struct codec *codec)
|
||||
if (ecx & bit_XSAVE_XRSTORE) {
|
||||
uint64_t xcr_mask;
|
||||
xcr_mask = _xgetbv(_XCR_XFEATURE_ENABLED_MASK);
|
||||
- if (xcr_mask & _XCR_XMM_AND_YMM_STATE_ENABLED_BY_OS) {
|
||||
+ if ((xcr_mask & _XCR_XMM_AND_YMM_STATE_ENABLED_BY_OS) == _XCR_XMM_AND_YMM_STATE_ENABLED_BY_OS) { // check multiple bits at once
|
||||
#if HAVE_AVX2
|
||||
if (max_level >= 7) {
|
||||
__cpuid_count(7, 0, eax, ebx, ecx, edx);
|
|
@ -24,10 +24,10 @@ index 69e2a389f9e1480a1a4ba37f5df5356b42f7d52d..0c29b00298b44b97f88a63aa5b89f1c2
|
|||
wrap->object()->Has(env->context(), env->handle_onclose_symbol())
|
||||
.FromMaybe(false)) {
|
||||
diff --git a/src/node_contextify.cc b/src/node_contextify.cc
|
||||
index 64860d7e56d2bf68034d613d06bd0e36ca935ef6..af66f25c79b274838e308f8227fa463f31ae8658 100644
|
||||
index a68f6bb686768e2c5eaa4148741891926156883d..0239c64f80f4fb1870b452ed44e6ac36bfa0e3d2 100644
|
||||
--- a/src/node_contextify.cc
|
||||
+++ b/src/node_contextify.cc
|
||||
@@ -446,6 +446,7 @@ bool ContextifyContext::IsStillInitializing(const ContextifyContext* ctx) {
|
||||
@@ -472,6 +472,7 @@ bool ContextifyContext::IsStillInitializing(const ContextifyContext* ctx) {
|
||||
void ContextifyContext::PropertyGetterCallback(
|
||||
Local<Name> property,
|
||||
const PropertyCallbackInfo<Value>& args) {
|
||||
|
@ -35,7 +35,7 @@ index 64860d7e56d2bf68034d613d06bd0e36ca935ef6..af66f25c79b274838e308f8227fa463f
|
|||
ContextifyContext* ctx = ContextifyContext::Get(args);
|
||||
|
||||
// Still initializing
|
||||
@@ -453,6 +454,8 @@ void ContextifyContext::PropertyGetterCallback(
|
||||
@@ -479,6 +480,8 @@ void ContextifyContext::PropertyGetterCallback(
|
||||
|
||||
Local<Context> context = ctx->context();
|
||||
Local<Object> sandbox = ctx->sandbox();
|
||||
|
@ -44,7 +44,7 @@ index 64860d7e56d2bf68034d613d06bd0e36ca935ef6..af66f25c79b274838e308f8227fa463f
|
|||
MaybeLocal<Value> maybe_rv =
|
||||
sandbox->GetRealNamedProperty(context, property);
|
||||
if (maybe_rv.IsEmpty()) {
|
||||
@@ -462,6 +465,11 @@ void ContextifyContext::PropertyGetterCallback(
|
||||
@@ -488,6 +491,11 @@ void ContextifyContext::PropertyGetterCallback(
|
||||
|
||||
Local<Value> rv;
|
||||
if (maybe_rv.ToLocal(&rv)) {
|
||||
|
@ -57,10 +57,10 @@ index 64860d7e56d2bf68034d613d06bd0e36ca935ef6..af66f25c79b274838e308f8227fa463f
|
|||
rv = ctx->global_proxy();
|
||||
|
||||
diff --git a/src/node_messaging.cc b/src/node_messaging.cc
|
||||
index 0a45234d55b837b3cc394db77d2cc0644b3cb501..c3794f8de34be43cd78e1bc0d940acba0cf257ff 100644
|
||||
index 6c9a23e669b29d1fdbc4e371d903e77060fd1b74..7c9f6b004295433be6a4ce84621f2005a0b67e14 100644
|
||||
--- a/src/node_messaging.cc
|
||||
+++ b/src/node_messaging.cc
|
||||
@@ -905,7 +905,7 @@ Maybe<bool> MessagePort::PostMessage(Environment* env,
|
||||
@@ -907,7 +907,7 @@ Maybe<bool> MessagePort::PostMessage(Environment* env,
|
||||
const TransferList& transfer_v) {
|
||||
Isolate* isolate = env->isolate();
|
||||
Local<Object> obj = object(isolate);
|
||||
|
@ -69,7 +69,7 @@ index 0a45234d55b837b3cc394db77d2cc0644b3cb501..c3794f8de34be43cd78e1bc0d940acba
|
|||
std::shared_ptr<Message> msg = std::make_shared<Message>();
|
||||
|
||||
// Per spec, we need to both check if transfer list has the source port, and
|
||||
@@ -913,6 +913,10 @@ Maybe<bool> MessagePort::PostMessage(Environment* env,
|
||||
@@ -915,6 +915,10 @@ Maybe<bool> MessagePort::PostMessage(Environment* env,
|
||||
|
||||
Maybe<bool> serialization_maybe =
|
||||
msg->Serialize(env, context, message_v, transfer_v, obj);
|
||||
|
|
|
@ -431,7 +431,7 @@ index 3b738b7f47ec59ba718a92e3a0024fed45a9c87c..fabf5775a263804f5974b10cf73c6886
|
|||
+ });
|
||||
}
|
||||
diff --git a/test/parallel/test-crypto-getcipherinfo.js b/test/parallel/test-crypto-getcipherinfo.js
|
||||
index 98d2a52eceac4bc564fd2878f77b50c336a67a66..bcb2de6e354c26816000f2400d9c1d46de01888a 100644
|
||||
index 64b79fc36ccf4d38f763fcd8c1930473c82cefd7..892490fc7dd8da09f8aa10a20bec69385c0fee28 100644
|
||||
--- a/test/parallel/test-crypto-getcipherinfo.js
|
||||
+++ b/test/parallel/test-crypto-getcipherinfo.js
|
||||
@@ -62,9 +62,13 @@ assert(getCipherInfo('aes-128-cbc', { ivLength: 16 }));
|
||||
|
@ -905,7 +905,7 @@ index aa685ca9e09cf0d17ff4d5480089e9977dd51f72..ccafa427433922155c1afd5d95ba69d8
|
|||
}));
|
||||
socket.end('Hello');
|
||||
diff --git a/test/parallel/test-tls-getprotocol.js b/test/parallel/test-tls-getprotocol.js
|
||||
index 7da2f60676d00e8e40d890f2efd46102154ca34d..2230b8cf85259d6670e274d6b84d83fd8788e83e 100644
|
||||
index 571f400cea574662bda6be8eecd22ceccaf75420..2296362dc625ee663df11927297ccf124233a19b 100644
|
||||
--- a/test/parallel/test-tls-getprotocol.js
|
||||
+++ b/test/parallel/test-tls-getprotocol.js
|
||||
@@ -27,7 +27,7 @@ const clientConfigs = [
|
||||
|
|
|
@ -6,32 +6,23 @@ Subject: fix: do not resolve electron entrypoints
|
|||
This wastes fs cycles and can result in strange behavior if this path actually exists on disk
|
||||
|
||||
diff --git a/lib/internal/modules/esm/load.js b/lib/internal/modules/esm/load.js
|
||||
index 8406e8ca319533d6186c5d457e951b7a845b6b72..caa34187e17d9a0addcc8c94e46823ea4e05c590 100644
|
||||
index 449131b9af99744c08d62d73f8d124cef5c9cc71..3df06eff63106aece1009d88fd01df2abdf6d943 100644
|
||||
--- a/lib/internal/modules/esm/load.js
|
||||
+++ b/lib/internal/modules/esm/load.js
|
||||
@@ -131,7 +131,7 @@ async function defaultLoad(url, context = kEmptyObject) {
|
||||
@@ -132,7 +132,7 @@ async function defaultLoad(url, context = kEmptyObject) {
|
||||
source = null;
|
||||
format ??= 'builtin';
|
||||
} else {
|
||||
let contextToPass = context;
|
||||
} else if (format !== 'commonjs' || defaultType === 'module') {
|
||||
- if (source == null) {
|
||||
+ if (format !== 'electron' && source == null) {
|
||||
({ responseURL, source } = await getSource(urlInstance, context));
|
||||
contextToPass = { __proto__: context, source };
|
||||
context = { __proto__: context, source };
|
||||
}
|
||||
@@ -139,7 +139,7 @@ async function defaultLoad(url, context = kEmptyObject) {
|
||||
// Now that we have the source for the module, run `defaultGetFormat` again in case we detect ESM syntax.
|
||||
format ??= await defaultGetFormat(urlInstance, contextToPass);
|
||||
|
||||
- if ((format === 'commonjs' || format === 'electron') && contextToPass !== context) {
|
||||
+ if (format === 'electron' || format === 'commonjs' && contextToPass !== context) {
|
||||
// For backward compatibility reasons, we need to discard the source in
|
||||
// order for the CJS loader to re-fetch it.
|
||||
source = null;
|
||||
diff --git a/lib/internal/modules/esm/translators.js b/lib/internal/modules/esm/translators.js
|
||||
index dbbe37474c70addfbf8cf805c29732dcd38c74f6..96ffb2b0b051163d8a777ed3d1b5bc2c83fc37c5 100644
|
||||
index cea066d1073a31573e134d584f1991e7a06b1036..2b2d8e00e7ecf2e8266218d8dc5e65f0f7c8a49f 100644
|
||||
--- a/lib/internal/modules/esm/translators.js
|
||||
+++ b/lib/internal/modules/esm/translators.js
|
||||
@@ -376,6 +376,9 @@ function cjsPreparseModuleExports(filename, source) {
|
||||
@@ -387,6 +387,9 @@ function cjsPreparseModuleExports(filename, source) {
|
||||
if (cached) {
|
||||
return { module, exportNames: cached.exportNames };
|
||||
}
|
||||
|
|
|
@ -10,7 +10,7 @@ parameters.
|
|||
This should be upstreamed.
|
||||
|
||||
diff --git a/src/node_builtins.cc b/src/node_builtins.cc
|
||||
index f3cda64beaa1403cb33f1b0bd8089f3dfcbfc8b9..77386bd234d0b49b122f1de3d27b1a92da5d0ea4 100644
|
||||
index bcef04f980d1b1f010c5349ecbfca8080f39b308..6861c28eb6deea72e844b04048d88ca726385c7f 100644
|
||||
--- a/src/node_builtins.cc
|
||||
+++ b/src/node_builtins.cc
|
||||
@@ -482,6 +482,18 @@ MaybeLocal<Value> BuiltinLoader::CompileAndCall(Local<Context> context,
|
||||
|
|
|
@ -18,19 +18,19 @@ index 1931688e85d05ee2da4f88efb05d635cb43be233..afccc24392abff9eef2b9953fcffeb79
|
|||
|
||||
/**
|
||||
diff --git a/lib/internal/modules/esm/load.js b/lib/internal/modules/esm/load.js
|
||||
index 6f9b73abd8a76191714f12d68c01a881653d8d4a..f108b567a910805ff86f0baf75fa1a6102ad28d6 100644
|
||||
index 5239bc8ed883a54df206d73c5dc0b70942c4f3df..6a15fcae677b3bda58fc85f705862bbcd9feec9d 100644
|
||||
--- a/lib/internal/modules/esm/load.js
|
||||
+++ b/lib/internal/modules/esm/load.js
|
||||
@@ -140,7 +140,7 @@ async function defaultLoad(url, context = kEmptyObject) {
|
||||
// Now that we have the source for the module, run `defaultGetFormat` again in case we detect ESM syntax.
|
||||
format ??= await defaultGetFormat(urlInstance, contextToPass);
|
||||
@@ -142,7 +142,7 @@ async function defaultLoad(url, context = kEmptyObject) {
|
||||
// Now that we have the source for the module, run `defaultGetFormat` to detect its format.
|
||||
format = await defaultGetFormat(urlInstance, context);
|
||||
|
||||
- if (format === 'commonjs' && contextToPass !== context) {
|
||||
+ if ((format === 'commonjs' || format === 'electron') && contextToPass !== context) {
|
||||
// For backward compatibility reasons, we need to discard the source in
|
||||
// order for the CJS loader to re-fetch it.
|
||||
source = null;
|
||||
@@ -221,6 +221,7 @@ function throwIfUnsupportedURLScheme(parsed, experimentalNetworkImports) {
|
||||
- if (format === 'commonjs') {
|
||||
+ if (format === 'electron' || format === 'commonjs') {
|
||||
// For backward compatibility reasons, we need to discard the source in
|
||||
// order for the CJS loader to re-fetch it.
|
||||
source = null;
|
||||
@@ -224,6 +224,7 @@ function throwIfUnsupportedURLScheme(parsed, experimentalNetworkImports) {
|
||||
protocol !== 'file:' &&
|
||||
protocol !== 'data:' &&
|
||||
protocol !== 'node:' &&
|
||||
|
@ -38,7 +38,7 @@ index 6f9b73abd8a76191714f12d68c01a881653d8d4a..f108b567a910805ff86f0baf75fa1a61
|
|||
(
|
||||
!experimentalNetworkImports ||
|
||||
(
|
||||
@@ -229,7 +230,7 @@ function throwIfUnsupportedURLScheme(parsed, experimentalNetworkImports) {
|
||||
@@ -232,7 +233,7 @@ function throwIfUnsupportedURLScheme(parsed, experimentalNetworkImports) {
|
||||
)
|
||||
)
|
||||
) {
|
||||
|
@ -48,10 +48,10 @@ index 6f9b73abd8a76191714f12d68c01a881653d8d4a..f108b567a910805ff86f0baf75fa1a61
|
|||
ArrayPrototypePush(schemes, 'https', 'http');
|
||||
}
|
||||
diff --git a/lib/internal/modules/esm/resolve.js b/lib/internal/modules/esm/resolve.js
|
||||
index 58e7df07ca5275e3a684f30c3d0a3f901d000fb8..2d077cc182b40e0bdce2d71d0471e96e6d30222a 100644
|
||||
index 06a34c11254a2fedd2ea59c4057bfb30c31082a6..66ecfbcdd4fb2c9986e2d4619a381337839979fe 100644
|
||||
--- a/lib/internal/modules/esm/resolve.js
|
||||
+++ b/lib/internal/modules/esm/resolve.js
|
||||
@@ -731,6 +731,8 @@ function packageImportsResolve(name, base, conditions) {
|
||||
@@ -740,6 +740,8 @@ function packageImportsResolve(name, base, conditions) {
|
||||
throw importNotDefined(name, packageJSONUrl, base);
|
||||
}
|
||||
|
||||
|
@ -60,7 +60,7 @@ index 58e7df07ca5275e3a684f30c3d0a3f901d000fb8..2d077cc182b40e0bdce2d71d0471e96e
|
|||
/**
|
||||
* Returns the package type for a given URL.
|
||||
* @param {URL} url - The URL to get the package type for.
|
||||
@@ -791,6 +793,11 @@ function packageResolve(specifier, base, conditions) {
|
||||
@@ -800,6 +802,11 @@ function packageResolve(specifier, base, conditions) {
|
||||
return new URL('node:' + specifier);
|
||||
}
|
||||
|
||||
|
@ -73,10 +73,10 @@ index 58e7df07ca5275e3a684f30c3d0a3f901d000fb8..2d077cc182b40e0bdce2d71d0471e96e
|
|||
parsePackageName(specifier, base);
|
||||
|
||||
diff --git a/lib/internal/modules/esm/translators.js b/lib/internal/modules/esm/translators.js
|
||||
index 7a62615cfe4210c9fd83c6bfa3b5da19eec5fff2..bda102b266b17936efc453d039213517c4ef921c 100644
|
||||
index 9976b819f266c682631f41522af114b660d7c20c..e5fea28126b1b810cd3e1e5a13c0fdc97b6b71f5 100644
|
||||
--- a/lib/internal/modules/esm/translators.js
|
||||
+++ b/lib/internal/modules/esm/translators.js
|
||||
@@ -280,7 +280,7 @@ function createCJSModuleWrap(url, source, isMain, loadCJS = loadCJSModule) {
|
||||
@@ -291,7 +291,7 @@ function createCJSModuleWrap(url, source, isMain, loadCJS = loadCJSModule) {
|
||||
|
||||
const { exportNames, module } = cjsPreparseModuleExports(filename, source);
|
||||
cjsCache.set(url, module);
|
||||
|
@ -85,7 +85,7 @@ index 7a62615cfe4210c9fd83c6bfa3b5da19eec5fff2..bda102b266b17936efc453d039213517
|
|||
[...exportNames] : ['default', ...exportNames];
|
||||
|
||||
if (isMain) {
|
||||
@@ -302,8 +302,8 @@ function createCJSModuleWrap(url, source, isMain, loadCJS = loadCJSModule) {
|
||||
@@ -313,8 +313,8 @@ function createCJSModuleWrap(url, source, isMain, loadCJS = loadCJSModule) {
|
||||
({ exports } = module);
|
||||
}
|
||||
for (const exportName of exportNames) {
|
||||
|
@ -96,7 +96,7 @@ index 7a62615cfe4210c9fd83c6bfa3b5da19eec5fff2..bda102b266b17936efc453d039213517
|
|||
continue;
|
||||
}
|
||||
// We might trigger a getter -> dont fail.
|
||||
@@ -328,6 +328,10 @@ translators.set('require-commonjs', (url, source, isMain) => {
|
||||
@@ -339,6 +339,10 @@ translators.set('require-commonjs', (url, source, isMain) => {
|
||||
return createCJSModuleWrap(url, source);
|
||||
});
|
||||
|
||||
|
|
|
@ -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 6a6164b6d294430b6f2fe826cdcef5a9cc3f9660..035f495687856b0cfbcc4e87ba6e90d56c99e837 100644
|
||||
index a37a1b01fffb2acc1473e8b32349c86eead4f375..33edf44239a7ec13ebee2f926b1e7f9b8d0b83fe 100644
|
||||
--- a/src/api/environment.cc
|
||||
+++ b/src/api/environment.cc
|
||||
@@ -583,6 +583,10 @@ MultiIsolatePlatform* GetMultiIsolatePlatform(IsolateData* env) {
|
||||
@@ -590,6 +590,10 @@ MultiIsolatePlatform* GetMultiIsolatePlatform(IsolateData* env) {
|
||||
return env->platform();
|
||||
}
|
||||
|
||||
|
|
|
@ -263,7 +263,7 @@ index c5dd2fb8fce40f2bf6f9a8543047ffb50cc08084..d850af9257cc194ee385130ce3cd2c01
|
|||
|
||||
void KeyObjectHandle::CheckEcKeyData(const FunctionCallbackInfo<Value>& args) {
|
||||
diff --git a/src/crypto/crypto_random.cc b/src/crypto/crypto_random.cc
|
||||
index 245f352918696413f8f0f7cec94dbcec687685af..35c1c1ce9f0e3d59b75e3966d485bf70b846de5b 100644
|
||||
index 48154df7dc91ed7c0d65323199bc2f59dfc68135..6431e5c3062890975854780d15ecb84370b81770 100644
|
||||
--- a/src/crypto/crypto_random.cc
|
||||
+++ b/src/crypto/crypto_random.cc
|
||||
@@ -140,7 +140,7 @@ Maybe<bool> RandomPrimeTraits::AdditionalConfig(
|
||||
|
@ -357,12 +357,12 @@ index 5734d8fdc5505e1586f571c19b840bd56e9c9f1f..3034b114e081e2b32dd5b71653927a41
|
|||
} // namespace
|
||||
|
||||
diff --git a/src/node_metadata.cc b/src/node_metadata.cc
|
||||
index 22546e9de25bdf95a00d06057626b544d5bf6f28..3a20f2f6a153c2f0b48b86ed83b92484ac4c274a 100644
|
||||
index b88cfb98e75aca426224e19376b3ff4c23b92e53..b66f4e2b5cbd8f36af42f82a8921207302360e39 100644
|
||||
--- a/src/node_metadata.cc
|
||||
+++ b/src/node_metadata.cc
|
||||
@@ -16,7 +16,7 @@
|
||||
#include "v8.h"
|
||||
#include "zlib.h"
|
||||
#include "zlib_version.h"
|
||||
|
||||
-#if HAVE_OPENSSL
|
||||
+#if HAVE_OPENSSL && !defined(OPENSSL_IS_BORINGSSL)
|
||||
|
@ -383,7 +383,7 @@ index cf051585e779e2b03bd7b95fe5008b89cc7f8162..9de49c6828468fdf846dcd4ad445390f
|
|||
#if NODE_OPENSSL_HAS_QUIC
|
||||
#include <openssl/quic.h>
|
||||
diff --git a/src/node_options.cc b/src/node_options.cc
|
||||
index 29cb7fc6b29b89946856990032645ad4edb8529c..faca807e31daaadb0103556001a16629a3822c1f 100644
|
||||
index 5da6918af8c125259a89ce95bbbbc4fc475c4c69..a3d25cdd52f18e319ae3ac81437c8a0206b18690 100644
|
||||
--- a/src/node_options.cc
|
||||
+++ b/src/node_options.cc
|
||||
@@ -6,7 +6,7 @@
|
||||
|
@ -396,7 +396,7 @@ index 29cb7fc6b29b89946856990032645ad4edb8529c..faca807e31daaadb0103556001a16629
|
|||
#endif
|
||||
|
||||
diff --git a/src/node_options.h b/src/node_options.h
|
||||
index 30955c779714ce5ad9b79f11e4cfefbcada7fa05..f02c07cd418fa2e3c64221bd37acd380a130f608 100644
|
||||
index 312fae8f759c5828d0770ceee845dc4754871436..207468a2177d36894c64cb37aac946af02c82549 100644
|
||||
--- a/src/node_options.h
|
||||
+++ b/src/node_options.h
|
||||
@@ -11,7 +11,7 @@
|
||||
|
|
|
@ -6,7 +6,7 @@ Subject: fix: lazyload fs in esm loaders to apply asar patches
|
|||
Changes { foo } from fs to just "fs.foo" so that our patching of fs is applied to esm loaders
|
||||
|
||||
diff --git a/lib/internal/modules/esm/load.js b/lib/internal/modules/esm/load.js
|
||||
index f108b567a910805ff86f0baf75fa1a6102ad28d6..8406e8ca319533d6186c5d457e951b7a845b6b72 100644
|
||||
index 6a15fcae677b3bda58fc85f705862bbcd9feec9d..449131b9af99744c08d62d73f8d124cef5c9cc71 100644
|
||||
--- a/lib/internal/modules/esm/load.js
|
||||
+++ b/lib/internal/modules/esm/load.js
|
||||
@@ -10,7 +10,7 @@ const { kEmptyObject } = require('internal/util');
|
||||
|
@ -18,7 +18,7 @@ index f108b567a910805ff86f0baf75fa1a6102ad28d6..8406e8ca319533d6186c5d457e951b7a
|
|||
|
||||
// Do not eagerly grab .manifest, it may be in TDZ
|
||||
const policy = getOptionValue('--experimental-policy') ?
|
||||
@@ -40,8 +40,7 @@ async function getSource(url, context) {
|
||||
@@ -42,8 +42,7 @@ async function getSource(url, context) {
|
||||
let responseURL = href;
|
||||
let source;
|
||||
if (protocol === 'file:') {
|
||||
|
@ -28,7 +28,7 @@ index f108b567a910805ff86f0baf75fa1a6102ad28d6..8406e8ca319533d6186c5d457e951b7a
|
|||
} else if (protocol === 'data:') {
|
||||
const match = RegExpPrototypeExec(DATA_URL_PATTERN, url.pathname);
|
||||
if (!match) {
|
||||
@@ -80,7 +79,7 @@ function getSourceSync(url, context) {
|
||||
@@ -82,7 +81,7 @@ function getSourceSync(url, context) {
|
||||
const responseURL = href;
|
||||
let source;
|
||||
if (protocol === 'file:') {
|
||||
|
@ -38,7 +38,7 @@ index f108b567a910805ff86f0baf75fa1a6102ad28d6..8406e8ca319533d6186c5d457e951b7a
|
|||
const match = RegExpPrototypeExec(DATA_URL_PATTERN, url.pathname);
|
||||
if (!match) {
|
||||
diff --git a/lib/internal/modules/esm/resolve.js b/lib/internal/modules/esm/resolve.js
|
||||
index 2d077cc182b40e0bdce2d71d0471e96e6d30222a..34fd6613fa24d628fc026ac11e5be7217a20fff4 100644
|
||||
index 66ecfbcdd4fb2c9986e2d4619a381337839979fe..102165af37a42ca0394ec0d4efc21d3b03efe5eb 100644
|
||||
--- a/lib/internal/modules/esm/resolve.js
|
||||
+++ b/lib/internal/modules/esm/resolve.js
|
||||
@@ -24,7 +24,7 @@ const {
|
||||
|
@ -50,7 +50,7 @@ index 2d077cc182b40e0bdce2d71d0471e96e6d30222a..34fd6613fa24d628fc026ac11e5be721
|
|||
const { getOptionValue } = require('internal/options');
|
||||
// Do not eagerly grab .manifest, it may be in TDZ
|
||||
const policy = getOptionValue('--experimental-policy') ?
|
||||
@@ -257,7 +257,7 @@ function finalizeResolution(resolved, base, preserveSymlinks) {
|
||||
@@ -266,7 +266,7 @@ function finalizeResolution(resolved, base, preserveSymlinks) {
|
||||
}
|
||||
|
||||
if (!preserveSymlinks) {
|
||||
|
@ -60,19 +60,19 @@ index 2d077cc182b40e0bdce2d71d0471e96e6d30222a..34fd6613fa24d628fc026ac11e5be721
|
|||
});
|
||||
const { search, hash } = resolved;
|
||||
diff --git a/lib/internal/modules/esm/translators.js b/lib/internal/modules/esm/translators.js
|
||||
index bda102b266b17936efc453d039213517c4ef921c..dbbe37474c70addfbf8cf805c29732dcd38c74f6 100644
|
||||
index e5fea28126b1b810cd3e1e5a13c0fdc97b6b71f5..cea066d1073a31573e134d584f1991e7a06b1036 100644
|
||||
--- a/lib/internal/modules/esm/translators.js
|
||||
+++ b/lib/internal/modules/esm/translators.js
|
||||
@@ -32,7 +32,7 @@ function lazyTypes() {
|
||||
|
||||
@@ -33,7 +33,7 @@ function lazyTypes() {
|
||||
const { containsModuleSyntax } = internalBinding('contextify');
|
||||
const { BuiltinModule } = require('internal/bootstrap/realm');
|
||||
const assert = require('internal/assert');
|
||||
-const { readFileSync } = require('fs');
|
||||
+const fs = require('fs');
|
||||
const { dirname, extname, isAbsolute } = require('path');
|
||||
const {
|
||||
loadBuiltinModule,
|
||||
@@ -355,7 +355,7 @@ translators.set('commonjs', async function commonjsStrategy(url, source,
|
||||
@@ -366,7 +366,7 @@ translators.set('commonjs', async function commonjsStrategy(url, source,
|
||||
|
||||
try {
|
||||
// We still need to read the FS to detect the exports.
|
||||
|
@ -81,7 +81,7 @@ index bda102b266b17936efc453d039213517c4ef921c..dbbe37474c70addfbf8cf805c29732dc
|
|||
} catch {
|
||||
// Continue regardless of error.
|
||||
}
|
||||
@@ -424,7 +424,7 @@ function cjsPreparseModuleExports(filename, source) {
|
||||
@@ -435,7 +435,7 @@ function cjsPreparseModuleExports(filename, source) {
|
||||
isAbsolute(resolved)) {
|
||||
// TODO: this should be calling the `load` hook chain to get the source
|
||||
// (and fallback to reading the FS only if the source is nullish).
|
||||
|
|
|
@ -13,7 +13,7 @@ causing the following error:
|
|||
This should be upstreamed.
|
||||
|
||||
diff --git a/src/module_wrap.h b/src/module_wrap.h
|
||||
index 767d183c6b6b6d97726cf5d63c0b202bd9ae10a6..a134b3817c0a10174ead927589626789851760d0 100644
|
||||
index 061117dc3182d63e35d7e99ffd95801f96356322..63682be31ce00a3bf7b9be909cac4b7f9ec02a8e 100644
|
||||
--- a/src/module_wrap.h
|
||||
+++ b/src/module_wrap.h
|
||||
@@ -7,6 +7,7 @@
|
||||
|
|
|
@ -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 b077ee386bb40ea32208fc6655de88a3449b7eb2..f408d6c152d6acabea5ff3e262fe344909046595 100644
|
||||
index b077ee386bb40ea32208fc6655de88a3449b7eb2..d4b70bab5e89300bfe6305263d556c986380e2e0 100644
|
||||
--- a/lib/internal/modules/cjs/loader.js
|
||||
+++ b/lib/internal/modules/cjs/loader.js
|
||||
@@ -146,6 +146,13 @@ const {
|
||||
|
@ -16,9 +16,9 @@ index b077ee386bb40ea32208fc6655de88a3449b7eb2..f408d6c152d6acabea5ff3e262fe3449
|
|||
+// Store the "global" variable from global scope into a local scope, so we can
|
||||
+// still reference it from this file even after we deleted the "global" variable
|
||||
+// from the global scope.
|
||||
+const localGlobal = global;
|
||||
+const localGlobal = (typeof global !== 'undefined') ? global : undefined;
|
||||
+// Do the same for "Buffer".
|
||||
+const localBuffer = Buffer;
|
||||
+const localBuffer = (typeof Buffer !== 'undefined') ? Buffer : undefined;
|
||||
+
|
||||
const {
|
||||
isProxy,
|
||||
|
|
|
@ -22,7 +22,7 @@ index 7a773d5208e250abd8b0efb6dde66c45060bbee4..45e38ca0a122e3b1c5d8d59865f9610c
|
|||
const binding = internalBinding('builtins');
|
||||
|
||||
diff --git a/lib/internal/modules/cjs/loader.js b/lib/internal/modules/cjs/loader.js
|
||||
index f408d6c152d6acabea5ff3e262fe344909046595..ea3b411a78495d0414b1956503b86cbd5f0ed765 100644
|
||||
index d4b70bab5e89300bfe6305263d556c986380e2e0..1f3b719048f2477de183e2856b9b8eee8502f708 100644
|
||||
--- a/lib/internal/modules/cjs/loader.js
|
||||
+++ b/lib/internal/modules/cjs/loader.js
|
||||
@@ -96,6 +96,7 @@ const assert = require('internal/assert');
|
||||
|
|
|
@ -1,38 +0,0 @@
|
|||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: John Kleinschmidt <jkleinsc@electronjs.org>
|
||||
Date: Mon, 2 Oct 2023 10:59:53 -0400
|
||||
Subject: src: adapt to v8::Exception API change
|
||||
|
||||
4898682: [api] Add Error.cause to V8 API | https://chromium-review.googlesource.com/c/v8/v8/+/4898682
|
||||
Cherry picked fix from https://github.com/nodejs/node-v8/commit/675f411677c28a10a2f03d4b3ef14c2284c33587
|
||||
|
||||
diff --git a/src/env-inl.h b/src/env-inl.h
|
||||
index 222c78ef0cb9904742fd44f8182278ab1f50cd59..e248a144b905a6c7c166796cddfe8442f8dc7158 100644
|
||||
--- a/src/env-inl.h
|
||||
+++ b/src/env-inl.h
|
||||
@@ -780,10 +780,10 @@ inline void Environment::ThrowRangeError(const char* errmsg) {
|
||||
}
|
||||
|
||||
inline void Environment::ThrowError(
|
||||
- v8::Local<v8::Value> (*fun)(v8::Local<v8::String>),
|
||||
+ v8::Local<v8::Value> (*fun)(v8::Local<v8::String>, v8::Local<v8::Value>),
|
||||
const char* errmsg) {
|
||||
v8::HandleScope handle_scope(isolate());
|
||||
- isolate()->ThrowException(fun(OneByteString(isolate(), errmsg)));
|
||||
+ isolate()->ThrowException(fun(OneByteString(isolate(), errmsg), {}));
|
||||
}
|
||||
|
||||
inline void Environment::ThrowErrnoException(int errorno,
|
||||
diff --git a/src/env.h b/src/env.h
|
||||
index 87df6e1f32e584aa0c6ae21856299fff31d67669..c9a455be8c395a2f231f56e0a54211466362aa1d 100644
|
||||
--- a/src/env.h
|
||||
+++ b/src/env.h
|
||||
@@ -1017,7 +1017,7 @@ class Environment : public MemoryRetainer {
|
||||
};
|
||||
|
||||
private:
|
||||
- inline void ThrowError(v8::Local<v8::Value> (*fun)(v8::Local<v8::String>),
|
||||
+ inline void ThrowError(v8::Local<v8::Value> (*fun)(v8::Local<v8::String>, v8::Local<v8::Value>),
|
||||
const char* errmsg);
|
||||
void TrackContext(v8::Local<v8::Context> context);
|
||||
void UntrackContext(v8::Local<v8::Context> context);
|
|
@ -1,91 +0,0 @@
|
|||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: Keeley Hammond <vertedinde@electronjs.org>
|
||||
Date: Mon, 6 Nov 2023 14:37:50 -0800
|
||||
Subject: src: avoid copying string in fs_permission
|
||||
|
||||
Ref: https://github.com/nodejs/node/pull/47746/files
|
||||
|
||||
diff --git a/src/permission/fs_permission.cc b/src/permission/fs_permission.cc
|
||||
index fadf75968c779d5aee8d9d1ee27e7b4abf241240..d407d440d74c66d9dc8ca4d4653096292c5adc4c 100644
|
||||
--- a/src/permission/fs_permission.cc
|
||||
+++ b/src/permission/fs_permission.cc
|
||||
@@ -199,18 +199,18 @@ bool FSPermission::RadixTree::Lookup(const std::string_view& s,
|
||||
}
|
||||
}
|
||||
|
||||
-void FSPermission::RadixTree::Insert(const std::string& path) {
|
||||
+void FSPermission::RadixTree::Insert(const std::string& path_prefix) {
|
||||
FSPermission::RadixTree::Node* current_node = root_node_;
|
||||
|
||||
unsigned int parent_node_prefix_len = current_node->prefix.length();
|
||||
- int path_len = path.length();
|
||||
+ int path_len = path_prefix.length();
|
||||
|
||||
for (int i = 1; i <= path_len; ++i) {
|
||||
- bool is_wildcard_node = path[i - 1] == '*';
|
||||
+ bool is_wildcard_node = path_prefix[i - 1] == '*';
|
||||
bool is_last_char = i == path_len;
|
||||
|
||||
if (is_wildcard_node || is_last_char) {
|
||||
- std::string node_path = path.substr(parent_node_prefix_len, i);
|
||||
+ std::string node_path = path_prefix.substr(parent_node_prefix_len, i);
|
||||
current_node = current_node->CreateChild(node_path);
|
||||
}
|
||||
|
||||
@@ -222,7 +222,7 @@ void FSPermission::RadixTree::Insert(const std::string& path) {
|
||||
|
||||
if (UNLIKELY(per_process::enabled_debug_list.enabled(
|
||||
DebugCategory::PERMISSION_MODEL))) {
|
||||
- per_process::Debug(DebugCategory::PERMISSION_MODEL, "Inserting %s\n", path);
|
||||
+ per_process::Debug(DebugCategory::PERMISSION_MODEL, "Inserting %s\n", path_prefix);
|
||||
PrintTree(root_node_);
|
||||
}
|
||||
}
|
||||
diff --git a/src/permission/fs_permission.h b/src/permission/fs_permission.h
|
||||
index 244e95727ad48757995c6404f457f42a4ba33ccd..4b6aab197333928bfbd5143bea15b3a5abd6d4c0 100644
|
||||
--- a/src/permission/fs_permission.h
|
||||
+++ b/src/permission/fs_permission.h
|
||||
@@ -31,16 +31,16 @@ class FSPermission final : public PermissionBase {
|
||||
|
||||
Node() : wildcard_child(nullptr), is_leaf(false) {}
|
||||
|
||||
- Node* CreateChild(std::string prefix) {
|
||||
- if (prefix.empty() && !is_leaf) {
|
||||
+ Node* CreateChild(std::string path_prefix) {
|
||||
+ if (path_prefix.empty() && !is_leaf) {
|
||||
is_leaf = true;
|
||||
return this;
|
||||
}
|
||||
- char label = prefix[0];
|
||||
+ char label = path_prefix[0];
|
||||
|
||||
Node* child = children[label];
|
||||
if (child == nullptr) {
|
||||
- children[label] = new Node(prefix);
|
||||
+ children[label] = new Node(path_prefix);
|
||||
return children[label];
|
||||
}
|
||||
|
||||
@@ -48,7 +48,7 @@ class FSPermission final : public PermissionBase {
|
||||
unsigned int i = 0;
|
||||
unsigned int prefix_len = prefix.length();
|
||||
for (; i < child->prefix.length(); ++i) {
|
||||
- if (i > prefix_len || prefix[i] != child->prefix[i]) {
|
||||
+ if (i > prefix_len || path_prefix[i] != child->prefix[i]) {
|
||||
std::string parent_prefix = child->prefix.substr(0, i);
|
||||
std::string child_prefix = child->prefix.substr(i);
|
||||
|
||||
@@ -57,11 +57,11 @@ class FSPermission final : public PermissionBase {
|
||||
split_child->children[child_prefix[0]] = child;
|
||||
children[parent_prefix[0]] = split_child;
|
||||
|
||||
- return split_child->CreateChild(prefix.substr(i));
|
||||
+ return split_child->CreateChild(path_prefix.substr(i));
|
||||
}
|
||||
}
|
||||
child->is_leaf = true;
|
||||
- return child->CreateChild(prefix.substr(i));
|
||||
+ return child->CreateChild(path_prefix.substr(i));
|
||||
}
|
||||
|
||||
Node* CreateWildcardChild() {
|
|
@ -1,148 +0,0 @@
|
|||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: Cheng Zhao <zcbenz@gmail.com>
|
||||
Date: Mon, 13 Nov 2023 22:01:07 +0900
|
||||
Subject: src: fix compatility with upcoming V8 12.1 APIs
|
||||
|
||||
In the upcoming V8 11.10 there are a few API changes will break
|
||||
building of Node, this PR makes the code compatible with both old
|
||||
and new APIs.
|
||||
|
||||
This PR is needed because [V8's node-ci repo](https://chromium.googlesource.com/v8/node-ci/)
|
||||
tests latest Node with latest V8, and without this change V8 has to patch Node in
|
||||
their own fork.
|
||||
|
||||
diff --git a/src/env-inl.h b/src/env-inl.h
|
||||
index e248a144b905a6c7c166796cddfe8442f8dc7158..524a9633ef16e48797dc6a1e507ca0be2bfffe7e 100644
|
||||
--- a/src/env-inl.h
|
||||
+++ b/src/env-inl.h
|
||||
@@ -779,9 +779,14 @@ inline void Environment::ThrowRangeError(const char* errmsg) {
|
||||
ThrowError(v8::Exception::RangeError, errmsg);
|
||||
}
|
||||
|
||||
-inline void Environment::ThrowError(
|
||||
- v8::Local<v8::Value> (*fun)(v8::Local<v8::String>, v8::Local<v8::Value>),
|
||||
- const char* errmsg) {
|
||||
+inline void Environment::ThrowError(V8ExceptionConstructorOld fun,
|
||||
+ const char* errmsg) {
|
||||
+ v8::HandleScope handle_scope(isolate());
|
||||
+ isolate()->ThrowException(fun(OneByteString(isolate(), errmsg)));
|
||||
+ }
|
||||
+
|
||||
+inline void Environment::ThrowError(V8ExceptionConstructorNew fun,
|
||||
+ const char* errmsg) {
|
||||
v8::HandleScope handle_scope(isolate());
|
||||
isolate()->ThrowException(fun(OneByteString(isolate(), errmsg), {}));
|
||||
}
|
||||
diff --git a/src/env.h b/src/env.h
|
||||
index c9a455be8c395a2f231f56e0a54211466362aa1d..448075e354c760a2dbd1dd763f40b7a645730250 100644
|
||||
--- a/src/env.h
|
||||
+++ b/src/env.h
|
||||
@@ -1017,8 +1017,14 @@ class Environment : public MemoryRetainer {
|
||||
};
|
||||
|
||||
private:
|
||||
- inline void ThrowError(v8::Local<v8::Value> (*fun)(v8::Local<v8::String>, v8::Local<v8::Value>),
|
||||
- const char* errmsg);
|
||||
+ // V8 has changed the constructor of exceptions, support both APIs before Node
|
||||
+ // updates to V8 12.1.
|
||||
+ using V8ExceptionConstructorOld =
|
||||
+ v8::Local<v8::Value> (*)(v8::Local<v8::String>);
|
||||
+ using V8ExceptionConstructorNew =
|
||||
+ v8::Local<v8::Value> (*)(v8::Local<v8::String>, v8::Local<v8::Value>);
|
||||
+ inline void ThrowError(V8ExceptionConstructorOld fun, const char* errmsg);
|
||||
+ inline void ThrowError(V8ExceptionConstructorNew fun, const char* errmsg);
|
||||
void TrackContext(v8::Local<v8::Context> context);
|
||||
void UntrackContext(v8::Local<v8::Context> context);
|
||||
|
||||
diff --git a/src/js_native_api_v8.cc b/src/js_native_api_v8.cc
|
||||
index f08294a26a43923cfb47dde080e42b5cde0803a5..8d48105cb4822dde19982ce1c132f521ff8b27c9 100644
|
||||
--- a/src/js_native_api_v8.cc
|
||||
+++ b/src/js_native_api_v8.cc
|
||||
@@ -961,11 +961,8 @@ napi_define_class(napi_env env,
|
||||
env, p->setter, p->data, &setter_tpl));
|
||||
}
|
||||
|
||||
- tpl->PrototypeTemplate()->SetAccessorProperty(property_name,
|
||||
- getter_tpl,
|
||||
- setter_tpl,
|
||||
- attributes,
|
||||
- v8::AccessControl::DEFAULT);
|
||||
+ tpl->PrototypeTemplate()->SetAccessorProperty(
|
||||
+ property_name, getter_tpl, setter_tpl, attributes);
|
||||
} else if (p->method != nullptr) {
|
||||
v8::Local<v8::FunctionTemplate> t;
|
||||
STATUS_CALL(v8impl::FunctionCallbackWrapper::NewTemplate(
|
||||
diff --git a/src/node_builtins.cc b/src/node_builtins.cc
|
||||
index 77386bd234d0b49b122f1de3d27b1a92da5d0ea4..6861c28eb6deea72e844b04048d88ca726385c7f 100644
|
||||
--- a/src/node_builtins.cc
|
||||
+++ b/src/node_builtins.cc
|
||||
@@ -693,37 +693,38 @@ void BuiltinLoader::CreatePerIsolateProperties(IsolateData* isolate_data,
|
||||
Local<ObjectTemplate> target) {
|
||||
Isolate* isolate = isolate_data->isolate();
|
||||
|
||||
- target->SetAccessor(isolate_data->config_string(),
|
||||
- ConfigStringGetter,
|
||||
- nullptr,
|
||||
- Local<Value>(),
|
||||
- DEFAULT,
|
||||
- None,
|
||||
- SideEffectType::kHasNoSideEffect);
|
||||
-
|
||||
- target->SetAccessor(FIXED_ONE_BYTE_STRING(isolate, "builtinIds"),
|
||||
- BuiltinIdsGetter,
|
||||
- nullptr,
|
||||
- Local<Value>(),
|
||||
- DEFAULT,
|
||||
- None,
|
||||
- SideEffectType::kHasNoSideEffect);
|
||||
-
|
||||
- target->SetAccessor(FIXED_ONE_BYTE_STRING(isolate, "builtinCategories"),
|
||||
- GetBuiltinCategories,
|
||||
- nullptr,
|
||||
- Local<Value>(),
|
||||
- DEFAULT,
|
||||
- None,
|
||||
- SideEffectType::kHasNoSideEffect);
|
||||
-
|
||||
- target->SetAccessor(FIXED_ONE_BYTE_STRING(isolate, "natives"),
|
||||
- GetNatives,
|
||||
- nullptr,
|
||||
- Local<Value>(),
|
||||
- DEFAULT,
|
||||
- None,
|
||||
- SideEffectType::kHasNoSideEffect);
|
||||
+ target->SetNativeDataProperty(isolate_data->config_string(),
|
||||
+ ConfigStringGetter,
|
||||
+ nullptr,
|
||||
+ Local<Value>(),
|
||||
+ None,
|
||||
+ DEFAULT,
|
||||
+ SideEffectType::kHasNoSideEffect);
|
||||
+
|
||||
+ target->SetNativeDataProperty(FIXED_ONE_BYTE_STRING(isolate, "builtinIds"),
|
||||
+ BuiltinIdsGetter,
|
||||
+ nullptr,
|
||||
+ Local<Value>(),
|
||||
+ None,
|
||||
+ DEFAULT,
|
||||
+ SideEffectType::kHasNoSideEffect);
|
||||
+
|
||||
+ target->SetNativeDataProperty(
|
||||
+ FIXED_ONE_BYTE_STRING(isolate, "builtinCategories"),
|
||||
+ GetBuiltinCategories,
|
||||
+ nullptr,
|
||||
+ Local<Value>(),
|
||||
+ None,
|
||||
+ DEFAULT,
|
||||
+ SideEffectType::kHasNoSideEffect);
|
||||
+
|
||||
+ target->SetNativeDataProperty(FIXED_ONE_BYTE_STRING(isolate, "natives"),
|
||||
+ GetNatives,
|
||||
+ nullptr,
|
||||
+ Local<Value>(),
|
||||
+ None,
|
||||
+ DEFAULT,
|
||||
+ SideEffectType::kHasNoSideEffect);
|
||||
|
||||
SetMethod(isolate, target, "getCacheUsage", BuiltinLoader::GetCacheUsage);
|
||||
SetMethod(isolate, target, "compileFunction", BuiltinLoader::CompileFunction);
|
|
@ -9,7 +9,7 @@ Xref: https://chromium-review.googlesource.com/c/v8/v8/+/4336198
|
|||
Backported from https://github.com/nodejs/node-v8/commit/f66b996030e94a7e4874820a53475338e1df4fe3
|
||||
|
||||
diff --git a/src/node_platform.cc b/src/node_platform.cc
|
||||
index 74ab4a3df8f09b11f0769ba1c56a8c9b0a3f22b0..dd66d17be10e704d510d74ec08dd08d6032cb605 100644
|
||||
index 927fdddb8d9a1a75263890623d05ea1df2bfee14..291e386ccae0d2f33125c221b09f4259575184ac 100644
|
||||
--- a/src/node_platform.cc
|
||||
+++ b/src/node_platform.cc
|
||||
@@ -496,17 +496,22 @@ bool PerIsolatePlatformData::FlushForegroundTasksInternal() {
|
||||
|
|
|
@ -7,7 +7,7 @@ This refactors several allocators to allocate within the V8 memory cage,
|
|||
allowing them to be compatible with the V8_SANDBOXED_POINTERS feature.
|
||||
|
||||
diff --git a/src/api/environment.cc b/src/api/environment.cc
|
||||
index 035f495687856b0cfbcc4e87ba6e90d56c99e837..c02906eacd90ac27d618e7578d1f928f16a858f7 100644
|
||||
index 33edf44239a7ec13ebee2f926b1e7f9b8d0b83fe..11f8b8dea7bf4119c2d99ee451e3f1bc7bde8902 100644
|
||||
--- a/src/api/environment.cc
|
||||
+++ b/src/api/environment.cc
|
||||
@@ -101,6 +101,14 @@ MaybeLocal<Value> PrepareStackTraceCallback(Local<Context> context,
|
||||
|
@ -131,10 +131,10 @@ index d45325954d980724f80d49298bbe837197237a9b..ccea18080142bd9cba3765dbbec61c2a
|
|||
return ret;
|
||||
|
||||
diff --git a/src/node_internals.h b/src/node_internals.h
|
||||
index d7f78664615fcfca6ed7404f940906c148a5e02c..35d76aaa69abfaca18421f12aa1ff78297b8f93f 100644
|
||||
index 9a96e042fc5cda18beb13b89965a6267fba3e0a6..bd210db0b6ad12075e8ced8b321da38752b3d050 100644
|
||||
--- a/src/node_internals.h
|
||||
+++ b/src/node_internals.h
|
||||
@@ -102,7 +102,9 @@ v8::Maybe<bool> InitializePrimordials(v8::Local<v8::Context> context);
|
||||
@@ -112,7 +112,9 @@ v8::Maybe<bool> InitializePrimordials(v8::Local<v8::Context> context);
|
||||
|
||||
class NodeArrayBufferAllocator : public ArrayBufferAllocator {
|
||||
public:
|
||||
|
@ -145,7 +145,7 @@ index d7f78664615fcfca6ed7404f940906c148a5e02c..35d76aaa69abfaca18421f12aa1ff782
|
|||
|
||||
void* Allocate(size_t size) override; // Defined in src/node.cc
|
||||
void* AllocateUninitialized(size_t size) override;
|
||||
@@ -121,7 +123,7 @@ class NodeArrayBufferAllocator : public ArrayBufferAllocator {
|
||||
@@ -131,7 +133,7 @@ class NodeArrayBufferAllocator : public ArrayBufferAllocator {
|
||||
}
|
||||
|
||||
private:
|
||||
|
|
|
@ -7,13 +7,13 @@ Instead of disabling the tests, flag them as flaky so they still run
|
|||
but don't cause CI failures on flakes.
|
||||
|
||||
diff --git a/test/parallel/parallel.status b/test/parallel/parallel.status
|
||||
index fa425fdcfc475ba2d5ba9a2492ea4481914a7cce..840c2f657467ede0e3737ea1aee55e07e39f353a 100644
|
||||
index 4c29730e78a07f5fa247900ae1bfbc9cb3bfdd0a..d19fb4a1f0e6a1efaff05e8faf638cff7e0c2255 100644
|
||||
--- a/test/parallel/parallel.status
|
||||
+++ b/test/parallel/parallel.status
|
||||
@@ -5,6 +5,13 @@ prefix parallel
|
||||
# sample-test : PASS,FLAKY
|
||||
|
||||
[true] # This section applies to all platforms
|
||||
@@ -8,6 +8,13 @@ prefix parallel
|
||||
# https://github.com/nodejs/node/pull/50327
|
||||
# Currently there's no reliable way to test it.
|
||||
test-diagnostics-channel-memory-leak: SKIP
|
||||
+test-inspector-multisession-ws: PASS, FLAKY
|
||||
+test-heapsnapshot-near-heap-limit-by-api-in-worker: PASS, FLAKY
|
||||
+test-heapsnapshot-near-heap-limit-worker: PASS, FLAKY
|
||||
|
|
|
@ -0,0 +1,51 @@
|
|||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: Shelley Vohr <shelley.vohr@gmail.com>
|
||||
Date: Tue, 16 Jan 2024 14:53:31 +0100
|
||||
Subject: test: make test-node-output-v8-warning generic
|
||||
|
||||
Ref https://github.com/nodejs/node/pull/50421.
|
||||
|
||||
The above CL migrated python snapshot testing to JS, and in the process
|
||||
added string replace calls to change 'node' as a hardcoded string to an
|
||||
asterisk. This was initially fixed in https://github.com/nodejs/node/pull/36489
|
||||
before being regressed in the above, as that PR essentially makes the wildcard
|
||||
meaningless. Fix it for now by replacing the process.argv0 basename instead.
|
||||
|
||||
Some form of fix for this should be upstreamed.
|
||||
|
||||
diff --git a/test/parallel/test-node-output-v8-warning.mjs b/test/parallel/test-node-output-v8-warning.mjs
|
||||
index 8e497739d21c70d5c792f43c268746a200916063..cad1910e020b15775ee16122bc9d310680fed687 100644
|
||||
--- a/test/parallel/test-node-output-v8-warning.mjs
|
||||
+++ b/test/parallel/test-node-output-v8-warning.mjs
|
||||
@@ -2,11 +2,18 @@ import '../common/index.mjs';
|
||||
import * as fixtures from '../common/fixtures.mjs';
|
||||
import * as snapshot from '../common/assertSnapshot.js';
|
||||
import { describe, it } from 'node:test';
|
||||
+import { basename } from 'node:path';
|
||||
|
||||
function replaceNodeVersion(str) {
|
||||
return str.replaceAll(process.version, '*');
|
||||
}
|
||||
|
||||
+function replaceExecName(str) {
|
||||
+ // Copied from lib/internal/process/warning.js
|
||||
+ const baseName = basename(process.argv0 || 'node', '.exe');
|
||||
+ return str.replaceAll(`${baseName} --`, '* --');
|
||||
+}
|
||||
+
|
||||
describe('v8 output', { concurrency: true }, () => {
|
||||
function normalize(str) {
|
||||
return str.replaceAll(snapshot.replaceWindowsPaths(process.cwd()), '')
|
||||
@@ -15,10 +22,10 @@ describe('v8 output', { concurrency: true }, () => {
|
||||
.replaceAll('*test*', '*')
|
||||
.replaceAll(/.*?\*fixtures\*v8\*/g, '(node:*) V8: *') // Replace entire path before fixtures/v8
|
||||
.replaceAll('*fixtures*v8*', '*')
|
||||
- .replaceAll('node --', '* --');
|
||||
}
|
||||
+
|
||||
const common = snapshot
|
||||
- .transform(snapshot.replaceWindowsLineEndings, snapshot.replaceWindowsPaths, replaceNodeVersion);
|
||||
+ .transform(snapshot.replaceWindowsLineEndings, snapshot.replaceWindowsPaths, replaceNodeVersion, replaceExecName);
|
||||
const defaultTransform = snapshot.transform(common, normalize);
|
||||
const tests = [
|
||||
{ name: 'v8/v8_warning.js' },
|
|
@ -0,0 +1,23 @@
|
|||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: Shelley Vohr <shelley.vohr@gmail.com>
|
||||
Date: Tue, 16 Jan 2024 19:39:10 +0100
|
||||
Subject: test: match wpt/streams/transferable/transform-stream-members.any.js
|
||||
to upstream
|
||||
|
||||
All four of this calls should fail - see third_party/blink/web_tests/external/wpt/streams/transferable/transform-stream-members.any-expected.txt
|
||||
|
||||
diff --git a/test/wpt/status/streams.json b/test/wpt/status/streams.json
|
||||
index 3b6e0ce6429f9dddb0b1a6882ce9e3a5158300e5..7ec49a378bfc84728b473d5df69675fff1dfdfef 100644
|
||||
--- a/test/wpt/status/streams.json
|
||||
+++ b/test/wpt/status/streams.json
|
||||
@@ -50,7 +50,9 @@
|
||||
"fail": {
|
||||
"expected": [
|
||||
"Transferring [object TransformStream],[object ReadableStream] should fail",
|
||||
- "Transferring [object TransformStream],[object WritableStream] should fail"
|
||||
+ "Transferring [object TransformStream],[object WritableStream] should fail",
|
||||
+ "Transferring [object ReadableStream],[object TransformStream] should fail",
|
||||
+ "Transferring [object WritableStream],[object TransformStream] should fail"
|
||||
]
|
||||
}
|
||||
},
|
|
@ -6,6 +6,7 @@ import pprint
|
|||
import re
|
||||
import subprocess
|
||||
import sys
|
||||
from lib.config import get_target_arch
|
||||
|
||||
ELECTRON_DIR = os.path.abspath(os.path.join(__file__, '..', '..'))
|
||||
NODE_DIR = os.path.join(ELECTRON_DIR, '..', 'third_party', 'electron_node')
|
||||
|
|
|
@ -16,7 +16,6 @@
|
|||
"parallel/test-crypto-key-objects",
|
||||
"parallel/test-crypto-keygen",
|
||||
"parallel/test-crypto-keygen-deprecation",
|
||||
"parallel/test-crypto-modp1-error",
|
||||
"parallel/test-crypto-padding-aes256",
|
||||
"parallel/test-crypto-secure-heap",
|
||||
"parallel/test-dgram-send-cb-quelches-error",
|
||||
|
@ -24,7 +23,6 @@
|
|||
"parallel/test-http2-clean-output",
|
||||
"parallel/test-http2-https-fallback",
|
||||
"parallel/test-http2-server-unknown-protocol",
|
||||
"parallel/test-tls-alpn-server-client",
|
||||
"parallel/test-https-agent-session-reuse",
|
||||
"parallel/test-https-options-boolean-check",
|
||||
"parallel/test-icu-env",
|
||||
|
@ -38,6 +36,7 @@
|
|||
"parallel/test-repl-underscore",
|
||||
"parallel/test-single-executable-blob-config",
|
||||
"parallel/test-single-executable-blob-config-errors",
|
||||
"parallel/test-shadow-realm-custom-loaders",
|
||||
"parallel/test-snapshot-api",
|
||||
"parallel/test-snapshot-argv1",
|
||||
"parallel/test-snapshot-basic",
|
||||
|
@ -60,6 +59,7 @@
|
|||
"parallel/test-snapshot-weak-reference",
|
||||
"parallel/test-snapshot-worker",
|
||||
"parallel/test-strace-openat-openssl",
|
||||
"parallel/test-tls-alpn-server-client",
|
||||
"parallel/test-tls-cert-chains-concat",
|
||||
"parallel/test-tls-cert-chains-in-ca",
|
||||
"parallel/test-tls-cli-max-version-1.2",
|
||||
|
@ -97,6 +97,7 @@
|
|||
"parallel/test-tls-peer-certificate",
|
||||
"parallel/test-tls-pfx-authorizationerror",
|
||||
"parallel/test-tls-psk-circuit",
|
||||
"parallel/test-tls-reduced-SECLEVEL-in-cipher",
|
||||
"parallel/test-tls-root-certificates",
|
||||
"parallel/test-tls-server-failed-handshake-emits-clienterror",
|
||||
"parallel/test-tls-set-ciphers",
|
||||
|
|
Загрузка…
Ссылка в новой задаче