mirror of
https://github.com/servo/servo.git
synced 2025-09-30 00:29:14 +01:00
Implement AbortSignal static abort(reason) (#38746)
Implement AbortSignal static abort(reason) part of #36936 --------- Signed-off-by: Taym Haddadi <haddadi.taym@gmail.com>
This commit is contained in:
parent
25fea1e086
commit
c4d2b63ef1
6 changed files with 32 additions and 35 deletions
|
@ -178,6 +178,31 @@ impl AbortSignalMethods<crate::DomTypeHolder> for AbortSignal {
|
|||
self.aborted()
|
||||
}
|
||||
|
||||
/// <https://dom.spec.whatwg.org/#dom-abortsignal-abort>
|
||||
fn Abort(
|
||||
cx: SafeJSContext,
|
||||
global: &GlobalScope,
|
||||
reason: HandleValue,
|
||||
can_gc: CanGc,
|
||||
) -> DomRoot<AbortSignal> {
|
||||
// Let signal be a new AbortSignal object.
|
||||
let signal = AbortSignal::new_with_proto(global, None, can_gc);
|
||||
|
||||
let abort_reason = reason.get();
|
||||
// Set signal’s abort reason to reason if it is given;
|
||||
if !abort_reason.is_undefined() {
|
||||
signal.abort_reason.set(abort_reason);
|
||||
} else {
|
||||
// otherwise to a new "AbortError" DOMException.
|
||||
rooted!(in(*cx) let mut rooted_error = UndefinedValue());
|
||||
Error::Abort.to_jsval(cx, global, rooted_error.handle_mut(), can_gc);
|
||||
signal.abort_reason.set(rooted_error.get())
|
||||
}
|
||||
|
||||
// Return signal.
|
||||
signal
|
||||
}
|
||||
|
||||
/// <https://dom.spec.whatwg.org/#dom-abortsignal-reason>
|
||||
fn Reason(&self, _cx: SafeJSContext, mut rval: MutableHandleValue) {
|
||||
// The reason getter steps are to return this’s abort reason.
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue