diff --git a/Cargo.lock b/Cargo.lock index 3c27069168..cff3891e9c 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -5329,9 +5329,9 @@ dependencies = [ [[package]] name = "v8" -version = "0.60.1" +version = "0.62.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07fd5b3ed559897ff02c0f62bc0a5f300bfe79bb4c77a50031b8df771701c628" +checksum = "1a317c7a8a25e2cf54acd715038c50f52c0e26aca888b85b62d472f59e221282" dependencies = [ "bitflags", "fslock", diff --git a/Cargo.toml b/Cargo.toml index fe103d6a39..c67b6f7884 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -41,7 +41,7 @@ license = "MIT" repository = "https://github.com/denoland/deno" [workspace.dependencies] -v8 = { version = "0.60.1", default-features = false } +v8 = { version = "0.62.2", default-features = false } deno_ast = { version = "0.23.2", features = ["transpiling"] } deno_core = { version = "0.171.0", path = "./core" } diff --git a/cli/tests/testdata/run/worker_close_in_wasm_reactions.js.out b/cli/tests/testdata/run/worker_close_in_wasm_reactions.js.out index 6485c620e5..66eb8201cd 100644 --- a/cli/tests/testdata/run/worker_close_in_wasm_reactions.js.out +++ b/cli/tests/testdata/run/worker_close_in_wasm_reactions.js.out @@ -1 +1,2 @@ Error: CompileError: WebAssembly.compile(): expected length: @+10 + at file:///[WILDCARD]/close_in_wasm_reactions.js:18:13 diff --git a/core/icudtl.dat b/core/icudtl.dat index dfa97affb6..d1f10917ab 100644 Binary files a/core/icudtl.dat and b/core/icudtl.dat differ diff --git a/core/inspector.rs b/core/inspector.rs index 2b03d663de..c83784fe38 100644 --- a/core/inspector.rs +++ b/core/inspector.rs @@ -111,6 +111,16 @@ impl v8::inspector::V8InspectorClientImpl for JsRuntimeInspector { &self.v8_inspector_client } + unsafe fn base_ptr( + this: *const Self, + ) -> *const v8::inspector::V8InspectorClientBase + where + Self: Sized, + { + // SAFETY: this pointer is valid for the whole lifetime of inspector + unsafe { std::ptr::addr_of!((*this).v8_inspector_client) } + } + fn base_mut(&mut self) -> &mut v8::inspector::V8InspectorClientBase { &mut self.v8_inspector_client } @@ -647,6 +657,14 @@ impl v8::inspector::ChannelImpl for InspectorSession { &self.v8_channel } + unsafe fn base_ptr(this: *const Self) -> *const v8::inspector::ChannelBase + where + Self: Sized, + { + // SAFETY: this pointer is valid for the whole lifetime of inspector + unsafe { std::ptr::addr_of!((*this).v8_channel) } + } + fn base_mut(&mut self) -> &mut v8::inspector::ChannelBase { &mut self.v8_channel } diff --git a/core/ops_builtin_v8.rs b/core/ops_builtin_v8.rs index a94f8a50b7..5ca62c811b 100644 --- a/core/ops_builtin_v8.rs +++ b/core/ops_builtin_v8.rs @@ -610,10 +610,10 @@ fn op_set_promise_hooks( let resolve_hook = v8::Local::new(scope, resolve_hook_global); scope.get_current_context().set_promise_hooks( - init_hook, - before_hook, - after_hook, - resolve_hook, + Some(init_hook), + Some(before_hook), + Some(after_hook), + Some(resolve_hook), ); Ok(()) diff --git a/core/runtime.rs b/core/runtime.rs index 1bda16f3e7..1418e57917 100644 --- a/core/runtime.rs +++ b/core/runtime.rs @@ -199,9 +199,9 @@ fn v8_init( ) { // Include 10MB ICU data file. #[repr(C, align(16))] - struct IcuData([u8; 10454784]); + struct IcuData([u8; 10541264]); static ICU_DATA: IcuData = IcuData(*include_bytes!("icudtl.dat")); - v8::icu::set_common_data_71(&ICU_DATA.0).unwrap(); + v8::icu::set_common_data_72(&ICU_DATA.0).unwrap(); let flags = concat!( " --wasm-test-streaming",