#![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_embedder_callback, register_worker_scope_callback};
pub(crate) mod conversions;
mod css;
mod devtools;
mod fetch;
#[macro_use]
mod dom;
pub(crate) use dom::canvas_context;
mod drag;
mod engine;
mod event_loop;
mod url;
pub mod layout_dom;
mod links;
pub(crate) mod messaging;
mod microtask;
pub(crate) mod mime;
pub(crate) mod modules;
mod navigation;
mod realms;
mod routed_promise;
pub(crate) mod script_runtime;
pub mod test;
mod timers;
mod unminify;
mod webdriver_handlers;
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;