From c98c487fdad70f31153b44ce214824a4c7b58fe6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bartek=20Iwa=C5=84czuk?= Date: Mon, 28 Dec 2020 16:36:44 +0100 Subject: [PATCH] upgrade: rusty_v8 0.15.0, v8 8.8.294 (#8898) --- Cargo.lock | 15 +++++++++++++-- core/Cargo.toml | 2 +- core/runtime.rs | 20 ++++---------------- 3 files changed, 18 insertions(+), 19 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index f74fe8436a..4817eb91d0 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -822,6 +822,16 @@ dependencies = [ "libc", ] +[[package]] +name = "fslock" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b14c83e47c73f7d62d907ae24a1a98e9132df3c33eb6c54fcf4bce0dbc41d5af" +dependencies = [ + "libc", + "winapi 0.3.9", +] + [[package]] name = "fuchsia-zircon" version = "0.3.3" @@ -2059,12 +2069,13 @@ dependencies = [ [[package]] name = "rusty_v8" -version = "0.14.0" +version = "0.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6bdaa4aeeae3253c3b34486af66527d9982105d79ba57cf9b50b217e7b47a8b6" +checksum = "901a9566b56ddfd49c504fdce35f27d8a6b29088facfd480ab79e95de3f836a1" dependencies = [ "bitflags", "cargo_gn", + "fslock", "lazy_static", "libc", "which", diff --git a/core/Cargo.toml b/core/Cargo.toml index 2d4abc2cf2..61884965de 100644 --- a/core/Cargo.toml +++ b/core/Cargo.toml @@ -19,7 +19,7 @@ indexmap = "1.6.0" lazy_static = "1.4.0" libc = "0.2.77" log = "0.4.11" -rusty_v8 = "0.14.0" +rusty_v8 = "0.15.0" serde_json = { version = "1.0", features = ["preserve_order"] } serde = { version = "1.0", features = ["derive"] } smallvec = "1.4.2" diff --git a/core/runtime.rs b/core/runtime.rs index 24bdf4dc29..d1fb41dd0a 100644 --- a/core/runtime.rs +++ b/core/runtime.rs @@ -604,18 +604,13 @@ pub(crate) fn exception_to_err_result<'s, T>( exception: v8::Local, in_promise: bool, ) -> Result { - // TODO(piscisaureus): in rusty_v8, `is_execution_terminating()` should - // also be implemented on `struct Isolate`. - let is_terminating_exception = - scope.thread_safe_handle().is_execution_terminating(); + let is_terminating_exception = scope.is_execution_terminating(); let mut exception = exception; if is_terminating_exception { // TerminateExecution was called. Cancel exception termination so that the // exception can be created.. - // TODO(piscisaureus): in rusty_v8, `cancel_terminate_execution()` should - // also be implemented on `struct Isolate`. - scope.thread_safe_handle().cancel_terminate_execution(); + scope.cancel_terminate_execution(); // Maybe make a new exception object. if exception.is_null_or_undefined() { @@ -638,9 +633,7 @@ pub(crate) fn exception_to_err_result<'s, T>( if is_terminating_exception { // Re-enable exception termination. - // TODO(piscisaureus): in rusty_v8, `terminate_execution()` should also - // be implemented on `struct Isolate`. - scope.thread_safe_handle().terminate_execution(); + scope.terminate_execution(); } Err(js_error) @@ -1785,12 +1778,7 @@ pub mod tests { // Cancel the execution-terminating exception in order to allow script // execution again. - // TODO(piscisaureus): in rusty_v8, `cancel_terminate_execution()` should - // also be implemented on `struct Isolate`. - let ok = isolate - .v8_isolate() - .thread_safe_handle() - .cancel_terminate_execution(); + let ok = isolate.v8_isolate().cancel_terminate_execution(); assert!(ok); // Verify that the isolate usable again.