deft_quick_js/
exception.rs

1use crate::JsValue;
2
3pub trait HostPromiseRejectionTracker {
4    fn track_promise_rejection(&mut self, promise: JsValue, reason: JsValue, is_handled: bool);
5}
6
7pub struct HostPromiseRejectionTrackerWrapper {
8    pub tracker: Box<dyn HostPromiseRejectionTracker>,
9}
10
11impl HostPromiseRejectionTrackerWrapper {
12    pub fn new(tracker: Box<dyn HostPromiseRejectionTracker>) -> Self {
13        Self { tracker }
14    }
15}
16
17pub struct DumpHostPromiseRejectionTracker {}
18
19impl DumpHostPromiseRejectionTracker {
20    pub fn new() -> Self {
21        Self {}
22    }
23}
24
25impl HostPromiseRejectionTracker for DumpHostPromiseRejectionTracker {
26    fn track_promise_rejection(&mut self, _promise: JsValue, reason: JsValue, _is_handled: bool) {
27        println!("uncaught promise rejection: {:?}", reason);
28    }
29}