mirror of
https://github.com/servo/servo.git
synced 2025-06-06 16:45:39 +00:00
Auto merge of #24120 - jdm:win-promise-crash, r=asajeffrey
Work around crash on Windows when returning JS::Value by value. - [x] `./mach build -d` does not report any errors - [x] `./mach test-tidy` does not report any errors - [x] These changes fix #24061 - [x] These changes do not require tests because no tests on Windows, sadly. <!-- Reviewable:start --> --- This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/24120) <!-- Reviewable:end -->
This commit is contained in:
commit
79e30e13fa
2 changed files with 7 additions and 4 deletions
2
Cargo.lock
generated
2
Cargo.lock
generated
|
@ -2932,7 +2932,7 @@ dependencies = [
|
|||
[[package]]
|
||||
name = "mozjs"
|
||||
version = "0.12.0"
|
||||
source = "git+https://github.com/servo/rust-mozjs#ab48ca77aec7fc656b7d1fd36bc33e7bc1036a17"
|
||||
source = "git+https://github.com/servo/rust-mozjs#92136c0b9a1efba2eb18b4400669278705816027"
|
||||
dependencies = [
|
||||
"cc 1.0.35 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
|
|
|
@ -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(),
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue