use rquickjs::{Ctx, Object, Value};
pub mod assert;
pub mod bytes;
pub mod deep_equal;
pub mod inspect;
pub mod path;
pub mod process;
pub mod require_resolve;
pub mod timers;
pub mod util;
pub fn throw_named<'js>(ctx: &Ctx<'js>, name: &str, message: impl Into<String>) -> rquickjs::Error {
let message = message.into();
let built: rquickjs::Result<Value<'js>> = (|| {
let ctor: rquickjs::function::Constructor<'js> = ctx.globals().get("Error")?;
let err: Object<'js> = ctor.construct((message.as_str(),))?;
err.set("name", name)?;
Ok(err.into_value())
})();
match built {
Ok(v) => ctx.throw(v),
Err(_) => rquickjs::Exception::throw_message(ctx, &message),
}
}