quickjs_runtime/features/
mod.rs

1//! contains engine features like console, setTimeout, setInterval and setImmediate
2
3use crate::facades::QuickJsRuntimeFacade;
4use crate::jsutils::JsError;
5#[cfg(feature = "console")]
6pub mod console;
7#[cfg(any(feature = "settimeout", feature = "setinterval"))]
8pub mod set_timeout;
9#[cfg(feature = "setimmediate")]
10pub mod setimmediate;
11
12#[cfg(any(
13    feature = "settimeout",
14    feature = "setinterval",
15    feature = "console",
16    feature = "setimmediate"
17))]
18pub fn init(es_rt: &QuickJsRuntimeFacade) -> Result<(), JsError> {
19    log::trace!("features::init");
20
21    es_rt.exe_rt_task_in_event_loop(move |q_js_rt| {
22        #[cfg(feature = "console")]
23        console::init(q_js_rt)?;
24        #[cfg(feature = "setimmediate")]
25        setimmediate::init(q_js_rt)?;
26
27        #[cfg(any(feature = "settimeout", feature = "setinterval"))]
28        set_timeout::init(q_js_rt)?;
29        Ok(())
30    })
31}