diff --git a/.gitmodules b/.gitmodules index 2e50dce078..44ef796ab5 100644 --- a/.gitmodules +++ b/.gitmodules @@ -18,7 +18,7 @@ url = https://chromium.googlesource.com/chromium/src/buildtools.git [submodule "third_party/icu"] path = third_party/icu - url = https://github.com/denoland/icu.git + url = https://chromium.googlesource.com/chromium/deps/icu.git [submodule "third_party/abseil-cpp"] path = third_party/abseil-cpp url = https://chromium.googlesource.com/chromium/src/third_party/abseil-cpp.git @@ -34,3 +34,6 @@ [submodule "third_party/libunwind/src"] path = third_party/libunwind/src url = https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libunwind.git +[submodule "third_party/fast_float/src"] + path = third_party/fast_float/src + url = https://chromium.googlesource.com/external/github.com/fastfloat/fast_float.git diff --git a/.gn b/.gn index 1c2b2ce59e..50532a67f6 100644 --- a/.gn +++ b/.gn @@ -78,7 +78,7 @@ default_args = { # Enable V8 object print for debugging. # v8_enable_object_print = true - + # V8 12.3 added google/fuzztest as a third party dependency. # https://chromium.googlesource.com/v8/v8.git/+/d5acece0c9b89b18716c177d1fcc8f734191e1e2%5E%21/#F4 # @@ -92,4 +92,7 @@ default_args = { v8_enable_v8_checks = false use_relative_vtables_abi = false + + v8_depend_on_icu_data_file = false + icu_copy_icudata_to_root_build_dir = false } diff --git a/README.md b/README.md index 40a563ecc4..b692c604d3 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # Rusty V8 Binding -V8 Version: 13.0.245.1 +V8 Version: 13.0.245.12 [![ci](https://github.com/denoland/rusty_v8/workflows/ci/badge.svg?branch=main)](https://github.com/denoland/rusty_v8/actions) [![crates](https://img.shields.io/crates/v/v8.svg)](https://crates.io/crates/v8) diff --git a/build b/build index c6d44e625a..d0a7da7e88 160000 --- a/build +++ b/build @@ -1 +1 @@ -Subproject commit c6d44e625aa64fa89cbdc971dfd301353bee04f3 +Subproject commit d0a7da7e88ffc90355cc94f44d3b5e9084b8381e diff --git a/buildtools b/buildtools index 60a590902c..a7a84ac61e 160000 --- a/buildtools +++ b/buildtools @@ -1 +1 @@ -Subproject commit 60a590902cf146c282f15242401bd8543256e2a2 +Subproject commit a7a84ac61eae5a8946807265a2fd8bd812daf384 diff --git a/rust-toolchain.toml b/rust-toolchain.toml index e92c5b6b71..4906231be9 100644 --- a/rust-toolchain.toml +++ b/rust-toolchain.toml @@ -1,5 +1,5 @@ [toolchain] -channel = "1.80.0" +channel = "1.81.0" components = ["rustfmt", "clippy"] targets = [ "x86_64-apple-darwin", diff --git a/src/binding.cc b/src/binding.cc index a2161d176a..684a31a1a9 100644 --- a/src/binding.cc +++ b/src/binding.cc @@ -3739,8 +3739,8 @@ void v8__CompiledWasmModule__DELETE(v8::CompiledWasmModule* self) { extern "C" { size_t icu_get_default_locale(char* output, size_t output_len) { - const icu_73::Locale& default_locale = icu::Locale::getDefault(); - icu_73::CheckedArrayByteSink sink(output, static_cast(output_len)); + const icu_74::Locale& default_locale = icu::Locale::getDefault(); + icu_74::CheckedArrayByteSink sink(output, static_cast(output_len)); UErrorCode status = U_ZERO_ERROR; default_locale.toLanguageTag(sink, status); assert(status == U_ZERO_ERROR); diff --git a/src/icu.rs b/src/icu.rs index 15c1be3940..370834d9e8 100644 --- a/src/icu.rs +++ b/src/icu.rs @@ -5,14 +5,14 @@ use std::ffi::CString; extern "C" { fn icu_get_default_locale(output: *mut char, output_len: usize) -> usize; fn icu_set_default_locale(locale: *const char); - fn udata_setCommonData_73(this: *const u8, error_code: *mut i32); + fn udata_setCommonData_74(this: *const u8, error_code: *mut i32); } /// This function bypasses the normal ICU data loading process and allows you to force ICU's system /// data to come out of a user-specified area in memory. /// /// ICU data must be at least 8-aligned, and should be 16-aligned. See -/// https://unicode-org.github.io/icu/userguide/icudata +/// https://unicode-org.github.io/icu/userguide/icu_data/ /// /// The format of this data is that of the icu common data file, as is generated by the pkgdata /// tool with mode=common or mode=dll. You can read in a whole common mode file and pass the @@ -42,10 +42,10 @@ extern "C" { /// functionality for application data. // TODO(ry) Map error code to something useful. #[inline(always)] -pub fn set_common_data_73(data: &'static [u8]) -> Result<(), i32> { +pub fn set_common_data_74(data: &'static [u8]) -> Result<(), i32> { let mut error_code = 0i32; unsafe { - udata_setCommonData_73(data.as_ptr(), &mut error_code); + udata_setCommonData_74(data.as_ptr(), &mut error_code); } if error_code == 0 { Ok(()) diff --git a/tests/compile_fail/handle_scope_escape_to_nowhere.stderr b/tests/compile_fail/handle_scope_escape_to_nowhere.stderr index e72c13a3ad..3800513e21 100644 --- a/tests/compile_fail/handle_scope_escape_to_nowhere.stderr +++ b/tests/compile_fail/handle_scope_escape_to_nowhere.stderr @@ -7,13 +7,13 @@ error[E0277]: the trait bound `OwnedIsolate: v8::scope::param::NewEscapableHandl | required by a bound introduced by this call | = help: the following other types implement trait `v8::scope::param::NewEscapableHandleScope<'s, 'e>`: - as v8::scope::param::NewEscapableHandleScope<'s, 'e>> - as v8::scope::param::NewEscapableHandleScope<'s, 'p>> - as v8::scope::param::NewEscapableHandleScope<'s, 'e>> - as v8::scope::param::NewEscapableHandleScope<'s, 'e>> - as v8::scope::param::NewEscapableHandleScope<'s, 'p>> - as v8::scope::param::NewEscapableHandleScope<'s, 'p>> - as v8::scope::param::NewEscapableHandleScope<'s, 'e>> + `AllowJavascriptExecutionScope<'p, P>` implements `v8::scope::param::NewEscapableHandleScope<'s, 'e>` + `CallbackScope<'p, C>` implements `v8::scope::param::NewEscapableHandleScope<'s, 'p>` + `ContextScope<'p, P>` implements `v8::scope::param::NewEscapableHandleScope<'s, 'e>` + `DisallowJavascriptExecutionScope<'p, P>` implements `v8::scope::param::NewEscapableHandleScope<'s, 'e>` + `EscapableHandleScope<'p, 'e, C>` implements `v8::scope::param::NewEscapableHandleScope<'s, 'p>` + `HandleScope<'p, C>` implements `v8::scope::param::NewEscapableHandleScope<'s, 'p>` + `TryCatch<'p, P>` implements `v8::scope::param::NewEscapableHandleScope<'s, 'e>` note: required by a bound in `EscapableHandleScope::<'s, 'e>::new` --> src/scope.rs | @@ -27,10 +27,10 @@ error[E0277]: the trait bound `OwnedIsolate: v8::scope::param::NewEscapableHandl | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `v8::scope::param::NewEscapableHandleScope<'_, '_>` is not implemented for `OwnedIsolate` | = help: the following other types implement trait `v8::scope::param::NewEscapableHandleScope<'s, 'e>`: - as v8::scope::param::NewEscapableHandleScope<'s, 'e>> - as v8::scope::param::NewEscapableHandleScope<'s, 'p>> - as v8::scope::param::NewEscapableHandleScope<'s, 'e>> - as v8::scope::param::NewEscapableHandleScope<'s, 'e>> - as v8::scope::param::NewEscapableHandleScope<'s, 'p>> - as v8::scope::param::NewEscapableHandleScope<'s, 'p>> - as v8::scope::param::NewEscapableHandleScope<'s, 'e>> + `AllowJavascriptExecutionScope<'p, P>` implements `v8::scope::param::NewEscapableHandleScope<'s, 'e>` + `CallbackScope<'p, C>` implements `v8::scope::param::NewEscapableHandleScope<'s, 'p>` + `ContextScope<'p, P>` implements `v8::scope::param::NewEscapableHandleScope<'s, 'e>` + `DisallowJavascriptExecutionScope<'p, P>` implements `v8::scope::param::NewEscapableHandleScope<'s, 'e>` + `EscapableHandleScope<'p, 'e, C>` implements `v8::scope::param::NewEscapableHandleScope<'s, 'p>` + `HandleScope<'p, C>` implements `v8::scope::param::NewEscapableHandleScope<'s, 'p>` + `TryCatch<'p, P>` implements `v8::scope::param::NewEscapableHandleScope<'s, 'e>` diff --git a/tests/test_api.rs b/tests/test_api.rs index e1256a0d5d..a50c3c3a86 100644 --- a/tests/test_api.rs +++ b/tests/test_api.rs @@ -45,7 +45,7 @@ mod setup { fn initialize_once() { static START: Once = Once::new(); START.call_once(|| { - assert!(v8::icu::set_common_data_73(align_data::include_aligned!( + assert!(v8::icu::set_common_data_74(align_data::include_aligned!( align_data::Align16, "../third_party/icu/common/icudtl.dat" )) @@ -9124,7 +9124,7 @@ fn icu_date() { #[test] fn icu_set_common_data_fail() { assert!( - v8::icu::set_common_data_73(&[1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0]).is_err() + v8::icu::set_common_data_74(&[1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0]).is_err() ); } diff --git a/third_party/abseil-cpp b/third_party/abseil-cpp index ed3733b91e..1f7e21e34c 160000 --- a/third_party/abseil-cpp +++ b/third_party/abseil-cpp @@ -1 +1 @@ -Subproject commit ed3733b91e472a1e7a641c1f0c1e6c0ea698e958 +Subproject commit 1f7e21e34c3807a8841c9562cfc8b3213eb50bfc diff --git a/third_party/fast_float/src b/third_party/fast_float/src new file mode 160000 index 0000000000..3e57d8dcfb --- /dev/null +++ b/third_party/fast_float/src @@ -0,0 +1 @@ +Subproject commit 3e57d8dcfb0a04b5a8a26b486b54490a2e9b310f diff --git a/third_party/icu b/third_party/icu index a22a8f2422..9408c6fd4a 160000 --- a/third_party/icu +++ b/third_party/icu @@ -1 +1 @@ -Subproject commit a22a8f24224ddda8b856437d7e8560de1da3f8e1 +Subproject commit 9408c6fd4a39e6fef0e1c4077602e1c83b15f3fb diff --git a/third_party/libc++/src b/third_party/libc++/src index f801c94708..50ab693ecb 160000 --- a/third_party/libc++/src +++ b/third_party/libc++/src @@ -1 +1 @@ -Subproject commit f801c947082a3e0a4b48780303526b73905f6ecd +Subproject commit 50ab693ecb611942ce4440d8c9ed707ee65ed5e8 diff --git a/third_party/libc++abi/src b/third_party/libc++abi/src index eb6567388e..29b2e9a0f4 160000 --- a/third_party/libc++abi/src +++ b/third_party/libc++abi/src @@ -1 +1 @@ -Subproject commit eb6567388e89d9730c76dee71d68ac82e4a1abf6 +Subproject commit 29b2e9a0f48688da116692cb04758393053d269c diff --git a/third_party/libunwind/src b/third_party/libunwind/src index 116c20dae6..dc70138c3e 160000 --- a/third_party/libunwind/src +++ b/third_party/libunwind/src @@ -1 +1 @@ -Subproject commit 116c20dae60d84a77005697cf29f72783f81b0f9 +Subproject commit dc70138c3e68e2f946585f134e20815851e26263 diff --git a/tools/clang b/tools/clang index 63b7be17f8..e47c184ec5 160000 --- a/tools/clang +++ b/tools/clang @@ -1 +1 @@ -Subproject commit 63b7be17f8981d716ea9a0d65bb04654d79548a8 +Subproject commit e47c184ec52d50c7aa2a99cd3bd26ebcafaa94b9 diff --git a/tools/update_deps.py b/tools/update_deps.py index c89dd9bd47..3745602c88 100644 --- a/tools/update_deps.py +++ b/tools/update_deps.py @@ -2,7 +2,7 @@ import subprocess def process(name, dep): - if name == 'build' or name == 'third_party/icu': + if name == 'build': # We have our own fork of this return diff --git a/v8 b/v8 index 3d2337ffbf..da24147866 160000 --- a/v8 +++ b/v8 @@ -1 +1 @@ -Subproject commit 3d2337ffbf01ac3d131cc3fb279dd82f5e1a33f5 +Subproject commit da24147866cee8f676686056f481734c57e8a8df