bindings: Convert certain Exceptions into Promise rejections (#32923)

* Impl promise exception to rejection for methods

Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>

* Impl promise exception to rejection for getters

Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>

* Impl promise exception to rejection for static methods

Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>

* Add tests for exception to rejection

Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>

* Expectations

Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>

---------

Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
This commit is contained in:
Samson 2024-08-03 14:58:37 +02:00 committed by GitHub
parent fd83281657
commit f3bec0aed3
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
11 changed files with 291 additions and 20 deletions

View file

@ -135,11 +135,11 @@ pub mod module {
pub use crate::dom::bindings::root::{Dom, DomSlice, MaybeUnreflectedDom, Root};
pub use crate::dom::bindings::trace::JSTraceable;
pub use crate::dom::bindings::utils::{
callargs_is_constructing, enumerate_global, generic_getter, generic_lenient_getter,
generic_lenient_setter, generic_method, generic_setter, get_array_index_from_id,
get_property_on_prototype, has_property_on_prototype, resolve_global, trace_global,
AsVoidPtr, DOMClass, DOMJSClass, ProtoOrIfaceArray, DOM_PROTO_UNFORGEABLE_HOLDER_SLOT,
JSCLASS_DOM_GLOBAL,
callargs_is_constructing, enumerate_global, exception_to_promise, generic_getter,
generic_lenient_getter, generic_lenient_setter, generic_method, generic_setter,
generic_static_promise_method, get_array_index_from_id, get_property_on_prototype,
has_property_on_prototype, resolve_global, trace_global, AsVoidPtr, DOMClass, DOMJSClass,
ProtoOrIfaceArray, DOM_PROTO_UNFORGEABLE_HOLDER_SLOT, JSCLASS_DOM_GLOBAL,
};
pub use crate::dom::bindings::weakref::{WeakReferenceable, DOM_WEAK_SLOT};
pub use crate::dom::types::{AnalyserNode, AudioNode, BaseAudioContext, EventTarget};