diff options
author | Auguste Baum <52001167+augustebaum@users.noreply.github.com> | 2025-02-23 01:34:51 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-02-23 00:34:51 +0000 |
commit | b0b0289014b707505a6921152b9ecba75afa207f (patch) | |
tree | f2ffba650cf28da83904b14e94ba3913967951f2 /components/script/dom/bindings/error.rs | |
parent | 02199520f2b611c9b5ab7b34a2372689cb4c22cd (diff) | |
download | servo-b0b0289014b707505a6921152b9ecba75afa207f.tar.gz servo-b0b0289014b707505a6921152b9ecba75afa207f.zip |
refactor: propagate CanGc arguments through callers (#35591)
Signed-off-by: Auguste Baum <auguste.apple@gmail.com>
Diffstat (limited to 'components/script/dom/bindings/error.rs')
-rw-r--r-- | components/script/dom/bindings/error.rs | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/components/script/dom/bindings/error.rs b/components/script/dom/bindings/error.rs index abf394b6ed9..779cc04c28b 100644 --- a/components/script/dom/bindings/error.rs +++ b/components/script/dom/bindings/error.rs @@ -105,7 +105,12 @@ pub(crate) type Fallible<T> = Result<T, Error>; pub(crate) type ErrorResult = Fallible<()>; /// Set a pending exception for the given `result` on `cx`. -pub(crate) fn throw_dom_exception(cx: SafeJSContext, global: &GlobalScope, result: Error) { +pub(crate) fn throw_dom_exception( + cx: SafeJSContext, + global: &GlobalScope, + result: Error, + can_gc: CanGc, +) { #[cfg(feature = "js_backtrace")] unsafe { capture_stack!(in(*cx) let stack); @@ -159,7 +164,7 @@ pub(crate) fn throw_dom_exception(cx: SafeJSContext, global: &GlobalScope, resul unsafe { assert!(!JS_IsExceptionPending(*cx)); - let exception = DOMException::new(global, code, CanGc::note()); + let exception = DOMException::new(global, code, can_gc); rooted!(in(*cx) let mut thrown = UndefinedValue()); exception.to_jsval(*cx, thrown.handle_mut()); JS_SetPendingException(*cx, thrown.handle(), ExceptionStackBehavior::Capture); @@ -349,7 +354,7 @@ impl Error { Error::JSFailed => (), _ => unsafe { assert!(!JS_IsExceptionPending(*cx)) }, } - throw_dom_exception(cx, global, self); + throw_dom_exception(cx, global, self, CanGc::note()); unsafe { assert!(JS_IsExceptionPending(*cx)); assert!(JS_GetPendingException(*cx, rval)); |