#![cfg_attr(crown, feature(register_tool))]
#![deny(unsafe_code)]
#![doc = "The script crate contains all matters DOM."]
#![cfg_attr(crown, register_tool(crown))]
#[macro_use]
extern crate js;
#[macro_use]
extern crate jstraceable_derive;
#[macro_use]
extern crate log;
#[macro_use]
extern crate malloc_size_of_derive;
#[macro_use]
extern crate stylo_atoms;
#[macro_use]
mod tasks;
pub use event_loop::script_thread::{
register_bao_event_loop_pump, bao_current_thread_wake_fn, register_embedder_callback,
register_worker_interfaces_ready_callback, register_worker_interfaces_ready_injector,
register_worker_scope_callback, register_worker_scope_injector, unregister_worker_injectors,
bao_run_in_script_settings, BaoEventLoopPump, EmbedderWorkerInjector,
register_bao_realm_discard_cancel, BaoRealmDiscardCancel,
};
pub use script_bindings::interface::{force_utc_realms, set_force_utc_realms};
pub use crate::dom::performance::performance::{
dom_time_precision_us, set_dom_time_precision_us,
};
pub(crate) mod conversions;
mod css;
mod fetch;
#[macro_use]
mod dom;
pub(crate) use dom::canvas_context;
mod drag;
mod engine;
mod event_loop;
mod runtime;
mod url;
pub mod layout_dom;
pub(crate) mod messaging;
pub(crate) mod mime;
pub(crate) mod modules;
mod navigation;
mod realms;
mod routed_promise;
pub mod test;
mod unminify;
mod window_named_properties;
mod xpath;
pub use event_loop::script_thread::ScriptThread;
pub(crate) use script_bindings::DomTypes;
pub(crate) use script_bindings::reflector::{AssociatedMemory, DomObject, MutDomObject, Reflector};
pub(crate) use crate::dom::bindings::codegen::DomTypeHolder::DomTypeHolder;
pub(crate) use crate::dom::bindings::inheritance::HasParent;
pub(crate) use crate::dom::bindings::trace::{CustomTraceable, JSTraceable};
pub use crate::dom::serviceworker::serviceworker_manager::ServiceWorkerManager;
pub use crate::engine::handle::JSEngineSetup;
pub use crate::engine::init::init;