just_engine/runner/ds/
error.rs1use crate::runner::ds::value::JsValue;
2
3#[derive(Debug, Clone)]
4pub enum JErrorType {
5 ReferenceError(String),
6 TypeError(String),
7 RangeError(String),
8 SyntaxError(String),
9 YieldValue(JsValue),
11}
12impl JErrorType {
13 pub fn new_copy(other: &Self) -> Self {
14 match other {
15 JErrorType::ReferenceError(m) => JErrorType::ReferenceError(m.to_string()),
16 JErrorType::TypeError(m) => JErrorType::TypeError(m.to_string()),
17 JErrorType::RangeError(m) => JErrorType::RangeError(m.to_string()),
18 JErrorType::SyntaxError(m) => JErrorType::SyntaxError(m.to_string()),
19 JErrorType::YieldValue(v) => JErrorType::YieldValue(v.clone()),
20 }
21 }
22 pub fn to_string(&self) -> String {
23 match self {
24 JErrorType::ReferenceError(m) => format!("Uncaught reference error: {}.", m),
25 JErrorType::TypeError(m) => format!("Uncaught type error: {}.", m),
26 JErrorType::RangeError(m) => format!("Uncaught range error: {}.", m),
27 JErrorType::SyntaxError(m) => format!("Uncaught syntax error: {}.", m),
28 JErrorType::YieldValue(_) => "Yield outside of generator".to_string(),
29 }
30 }
31}