aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/script_runtime.rs
diff options
context:
space:
mode:
authorJosh Matthews <josh@joshmatthews.net>2019-08-30 17:29:10 -0700
committerJosh Matthews <josh@joshmatthews.net>2019-08-30 17:29:10 -0700
commit421001ae1a3b8f3251db1aad20eca3e1fb942f78 (patch)
treee0cecf1340d6d8262a2fc6ba00ff05252170d3f4 /components/script/script_runtime.rs
parent51222397b0899477b60dfb68a479fe9b98897dbf (diff)
downloadservo-421001ae1a3b8f3251db1aad20eca3e1fb942f78.tar.gz
servo-421001ae1a3b8f3251db1aad20eca3e1fb942f78.zip
Work around crash on Windows when returning JS::Value by value.
Diffstat (limited to 'components/script/script_runtime.rs')
-rw-r--r--components/script/script_runtime.rs9
1 files changed, 6 insertions, 3 deletions
diff --git a/components/script/script_runtime.rs b/components/script/script_runtime.rs
index 02175fffbfc..305dd7d25b5 100644
--- a/components/script/script_runtime.rs
+++ b/components/script/script_runtime.rs
@@ -37,8 +37,9 @@ use js::jsapi::{
};
use js::jsapi::{JSObject, PromiseRejectionHandlingState, SetPreserveWrapperCallback};
use js::jsapi::{SetJobQueue, SetProcessBuildIdOp, SetPromiseRejectionTrackerCallback};
+use js::jsval::UndefinedValue;
use js::panic::wrap_panic;
-use js::rust::wrappers::{GetPromiseIsHandled, GetPromiseResult};
+use js::rust::wrappers::{GetPromiseIsHandled, JS_GetPromiseResult};
use js::rust::Handle;
use js::rust::IntoHandle;
use js::rust::JSEngine;
@@ -251,7 +252,8 @@ unsafe extern "C" fn promise_rejection_tracker(
let cx = target.global().get_cx();
let root_promise = trusted_promise.root();
- rooted!(in(*cx) let reason = GetPromiseResult(root_promise.reflector().get_jsobject()));
+ rooted!(in(*cx) let mut reason = UndefinedValue());
+ JS_GetPromiseResult(root_promise.reflector().get_jsobject(), reason.handle_mut());
let event = PromiseRejectionEvent::new(
&target.global(),
@@ -314,7 +316,8 @@ pub fn notify_about_rejected_promises(global: &GlobalScope) {
}
// Step 4-2.
- rooted!(in(*cx) let reason = GetPromiseResult(promise.reflector().get_jsobject()));
+ rooted!(in(*cx) let mut reason = UndefinedValue());
+ JS_GetPromiseResult(promise.reflector().get_jsobject(), reason.handle_mut());
let event = PromiseRejectionEvent::new(
&target.global(),