aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/dom/bindings/error.rs
diff options
context:
space:
mode:
authorAuguste Baum <52001167+augustebaum@users.noreply.github.com>2025-02-23 01:34:51 +0100
committerGitHub <noreply@github.com>2025-02-23 00:34:51 +0000
commitb0b0289014b707505a6921152b9ecba75afa207f (patch)
treef2ffba650cf28da83904b14e94ba3913967951f2 /components/script/dom/bindings/error.rs
parent02199520f2b611c9b5ab7b34a2372689cb4c22cd (diff)
downloadservo-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.rs11
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));