aboutsummaryrefslogtreecommitdiffstats
path: root/components
diff options
context:
space:
mode:
authorDomenico Rizzo <domenico.rizzo@gmail.com>2024-12-18 04:10:48 +0100
committerGitHub <noreply@github.com>2024-12-18 03:10:48 +0000
commit3d94f32cfc5d14d4f349e5b757be18ff6f2a9150 (patch)
tree347ad1b3be6b52ea96bf9156c0251363d8536359 /components
parent379bbb41dde5c46ff39cfc9027d7df49fae733b8 (diff)
downloadservo-3d94f32cfc5d14d4f349e5b757be18ff6f2a9150.tar.gz
servo-3d94f32cfc5d14d4f349e5b757be18ff6f2a9150.zip
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>
Diffstat (limited to 'components')
-rw-r--r--components/script/dom/promise.rs24
1 files changed, 16 insertions, 8 deletions
diff --git a/components/script/dom/promise.rs b/components/script/dom/promise.rs
index b58caf9e825..f4098ad3d0e 100644
--- a/components/script/dom/promise.rs
+++ b/components/script/dom/promise.rs
@@ -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)]