mirror of
https://github.com/servo/servo.git
synced 2025-07-23 15:23:42 +01:00
refactor: add CanGc as argument to Promise::reject (#35622)
Signed-off-by: Yerkebulan Tulibergenov <yerkebulan@gmail.com>
This commit is contained in:
parent
678f0c9fdc
commit
47f6c50dd9
5 changed files with 10 additions and 10 deletions
|
@ -600,8 +600,8 @@ impl Callback for ConsumeBodyPromiseRejectionHandler {
|
||||||
/// Continuing Step 4 of <https://fetch.spec.whatwg.org/#concept-body-consume-body>
|
/// Continuing Step 4 of <https://fetch.spec.whatwg.org/#concept-body-consume-body>
|
||||||
/// Step 3 of <https://fetch.spec.whatwg.org/#concept-read-all-bytes-from-readablestream>,
|
/// Step 3 of <https://fetch.spec.whatwg.org/#concept-read-all-bytes-from-readablestream>,
|
||||||
// the rejection steps.
|
// the rejection steps.
|
||||||
fn callback(&self, cx: JSContext, v: HandleValue, _realm: InRealm, _can_gc: CanGc) {
|
fn callback(&self, cx: JSContext, v: HandleValue, _realm: InRealm, can_gc: CanGc) {
|
||||||
self.result_promise.reject(cx, v);
|
self.result_promise.reject(cx, v, can_gc);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -218,7 +218,7 @@ impl Promise {
|
||||||
unsafe {
|
unsafe {
|
||||||
val.to_jsval(*cx, v.handle_mut());
|
val.to_jsval(*cx, v.handle_mut());
|
||||||
}
|
}
|
||||||
self.reject(cx, v.handle());
|
self.reject(cx, v.handle(), CanGc::note());
|
||||||
}
|
}
|
||||||
|
|
||||||
pub(crate) fn reject_error(&self, error: Error) {
|
pub(crate) fn reject_error(&self, error: Error) {
|
||||||
|
@ -226,12 +226,12 @@ impl Promise {
|
||||||
let _ac = enter_realm(self);
|
let _ac = enter_realm(self);
|
||||||
rooted!(in(*cx) let mut v = UndefinedValue());
|
rooted!(in(*cx) let mut v = UndefinedValue());
|
||||||
error.to_jsval(cx, &self.global(), v.handle_mut());
|
error.to_jsval(cx, &self.global(), v.handle_mut());
|
||||||
self.reject(cx, v.handle());
|
self.reject(cx, v.handle(), CanGc::note());
|
||||||
}
|
}
|
||||||
|
|
||||||
#[allow(unsafe_code)]
|
#[allow(unsafe_code)]
|
||||||
#[cfg_attr(crown, allow(crown::unrooted_must_root))]
|
#[cfg_attr(crown, allow(crown::unrooted_must_root))]
|
||||||
pub(crate) fn reject(&self, cx: SafeJSContext, value: HandleValue) {
|
pub(crate) fn reject(&self, cx: SafeJSContext, value: HandleValue, _can_gc: CanGc) {
|
||||||
unsafe {
|
unsafe {
|
||||||
if !RejectPromise(*cx, self.promise_obj(), value) {
|
if !RejectPromise(*cx, self.promise_obj(), value) {
|
||||||
JS_ClearPendingException(*cx);
|
JS_ClearPendingException(*cx);
|
||||||
|
|
|
@ -984,8 +984,8 @@ impl TestBindingMethods<crate::DomTypeHolder> for TestBinding {
|
||||||
p.resolve(cx, v, can_gc);
|
p.resolve(cx, v, can_gc);
|
||||||
}
|
}
|
||||||
|
|
||||||
fn PromiseRejectNative(&self, cx: SafeJSContext, p: &Promise, v: HandleValue) {
|
fn PromiseRejectNative(&self, cx: SafeJSContext, p: &Promise, v: HandleValue, can_gc: CanGc) {
|
||||||
p.reject(cx, v);
|
p.reject(cx, v, can_gc);
|
||||||
}
|
}
|
||||||
|
|
||||||
fn PromiseRejectWithTypeError(&self, p: &Promise, s: USVString) {
|
fn PromiseRejectWithTypeError(&self, p: &Promise, s: USVString) {
|
||||||
|
|
|
@ -263,7 +263,7 @@ impl WritableStream {
|
||||||
let write_requests = mem::take(&mut *self.write_requests.borrow_mut());
|
let write_requests = mem::take(&mut *self.write_requests.borrow_mut());
|
||||||
for request in write_requests {
|
for request in write_requests {
|
||||||
// Reject writeRequest with storedError.
|
// Reject writeRequest with storedError.
|
||||||
request.reject(cx, stored_error.handle());
|
request.reject(cx, stored_error.handle(), can_gc);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Set stream.[[writeRequests]] to an empty list.
|
// Set stream.[[writeRequests]] to an empty list.
|
||||||
|
@ -287,7 +287,7 @@ impl WritableStream {
|
||||||
// Reject abortRequest’s promise with storedError.
|
// Reject abortRequest’s promise with storedError.
|
||||||
pending_abort_request
|
pending_abort_request
|
||||||
.promise
|
.promise
|
||||||
.reject(cx, stored_error.handle());
|
.reject(cx, stored_error.handle(), can_gc);
|
||||||
|
|
||||||
// Perform ! WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream).
|
// Perform ! WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream).
|
||||||
self.reject_close_and_closed_promise_if_needed(cx);
|
self.reject_close_and_closed_promise_if_needed(cx);
|
||||||
|
|
|
@ -485,7 +485,7 @@ DOMInterfaces = {
|
||||||
#FIXME(jdm): This should be 'register': False, but then we don't generate enum types
|
#FIXME(jdm): This should be 'register': False, but then we don't generate enum types
|
||||||
'TestBinding': {
|
'TestBinding': {
|
||||||
'inRealms': ['PromiseAttribute', 'PromiseNativeHandler'],
|
'inRealms': ['PromiseAttribute', 'PromiseNativeHandler'],
|
||||||
'canGc': ['InterfaceAttribute', 'GetInterfaceAttributeNullable', 'ReceiveInterface', 'ReceiveInterfaceSequence', 'ReceiveNullableInterface', 'PromiseAttribute', 'PromiseNativeHandler', 'PromiseResolveNative'],
|
'canGc': ['InterfaceAttribute', 'GetInterfaceAttributeNullable', 'ReceiveInterface', 'ReceiveInterfaceSequence', 'ReceiveNullableInterface', 'PromiseAttribute', 'PromiseNativeHandler', 'PromiseResolveNative', 'PromiseRejectNative'],
|
||||||
},
|
},
|
||||||
|
|
||||||
'TestWorklet': {
|
'TestWorklet': {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue