modified Promise::new_resolved/new_rejected signature (#34658)

added rooted undefined value initialization for rval



removed unused import

Signed-off-by: Domenico Rizzo <domenico.rizzo@gmail.com>
This commit is contained in:
Domenico Rizzo 2024-12-18 04:10:48 +01:00 committed by GitHub
parent 379bbb41dd
commit 3d94f32cfc
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -150,24 +150,32 @@ impl Promise {
pub fn new_resolved(
global: &GlobalScope,
cx: SafeJSContext,
value: HandleValue,
value: impl ToJSValConvertible,
) -> Fallible<Rc<Promise>> {
let _ac = JSAutoRealm::new(*cx, global.reflector().get_jsobject().get());
rooted!(in(*cx) let p = unsafe { CallOriginalPromiseResolve(*cx, value) });
assert!(!p.handle().is_null());
Ok(Promise::new_with_js_promise(p.handle(), cx))
unsafe {
rooted!(in(*cx) let mut rval = UndefinedValue());
value.to_jsval(*cx, rval.handle_mut());
rooted!(in(*cx) let p = CallOriginalPromiseResolve(*cx, rval.handle()));
assert!(!p.handle().is_null());
Ok(Promise::new_with_js_promise(p.handle(), cx))
}
}
#[allow(crown::unrooted_must_root, unsafe_code)]
pub fn new_rejected(
global: &GlobalScope,
cx: SafeJSContext,
value: HandleValue,
value: impl ToJSValConvertible,
) -> Fallible<Rc<Promise>> {
let _ac = JSAutoRealm::new(*cx, global.reflector().get_jsobject().get());
rooted!(in(*cx) let p = unsafe { CallOriginalPromiseReject(*cx, value) });
assert!(!p.handle().is_null());
Ok(Promise::new_with_js_promise(p.handle(), cx))
unsafe {
rooted!(in(*cx) let mut rval = UndefinedValue());
value.to_jsval(*cx, rval.handle_mut());
rooted!(in(*cx) let p = CallOriginalPromiseReject(*cx, rval.handle()));
assert!(!p.handle().is_null());
Ok(Promise::new_with_js_promise(p.handle(), cx))
}
}
#[allow(unsafe_code)]