diff options
author | Domenico Rizzo <domenico.rizzo@gmail.com> | 2024-12-18 04:10:48 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-12-18 03:10:48 +0000 |
commit | 3d94f32cfc5d14d4f349e5b757be18ff6f2a9150 (patch) | |
tree | 347ad1b3be6b52ea96bf9156c0251363d8536359 /components | |
parent | 379bbb41dde5c46ff39cfc9027d7df49fae733b8 (diff) | |
download | servo-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.rs | 24 |
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)] |