1use rquickjs::{Ctx, Object, Value};
5
6pub mod assert;
7pub mod bytes;
8pub mod deep_equal;
9pub mod inspect;
10pub mod path;
11pub mod process;
12pub mod require_resolve;
13pub mod timers;
14pub mod util;
15
16pub fn throw_named<'js>(ctx: &Ctx<'js>, name: &str, message: impl Into<String>) -> rquickjs::Error {
20 let message = message.into();
21 let built: rquickjs::Result<Value<'js>> = (|| {
22 let ctor: rquickjs::function::Constructor<'js> = ctx.globals().get("Error")?;
23 let err: Object<'js> = ctor.construct((message.as_str(),))?;
24 err.set("name", name)?;
25 Ok(err.into_value())
26 })();
27 match built {
28 Ok(v) => ctx.throw(v),
29 Err(_) => rquickjs::Exception::throw_message(ctx, &message),
30 }
31}