Skip to main content

boa_engine/builtins/temporal/
error.rs

1use temporal_rs::error::{ErrorKind, TemporalError};
2
3use crate::{JsError, JsNativeError};
4
5impl From<TemporalError> for JsNativeError {
6    #[cfg_attr(feature = "native-backtrace", track_caller)]
7    fn from(value: TemporalError) -> Self {
8        match value.kind() {
9            ErrorKind::Range | ErrorKind::Syntax => {
10                JsNativeError::range().with_message(value.into_message().to_owned())
11            }
12            ErrorKind::Type => JsNativeError::typ().with_message(value.into_message().to_owned()),
13            ErrorKind::Generic => {
14                JsNativeError::error().with_message(value.into_message().to_owned())
15            }
16            ErrorKind::Assert => JsNativeError::error().with_message("internal engine error"),
17        }
18    }
19}
20
21impl From<TemporalError> for JsError {
22    #[cfg_attr(feature = "native-backtrace", track_caller)]
23    fn from(value: TemporalError) -> Self {
24        let native: JsNativeError = value.into();
25        native.into()
26    }
27}