summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Cargo.lock15
-rw-r--r--core/Cargo.toml2
-rw-r--r--core/runtime.rs20
3 files changed, 18 insertions, 19 deletions
diff --git a/Cargo.lock b/Cargo.lock
index f74fe8436..4817eb91d 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -823,6 +823,16 @@ dependencies = [
]
[[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"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -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 2d4abc2cf..61884965d 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 24bdf4dc2..d1fb41dd0 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<v8::Value>,
in_promise: bool,
) -> Result<T, AnyError> {
- // 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.