# JavaScript

This chapter demonstrates how to work with bevy_scriptum when using the
JavaScript language runtime.

JavaScript support is powered by the [V8](https://v8.dev/) engine through
[`deno_core`](https://crates.io/crates/deno_core). Scripts run synchronously -
the JavaScript event loop is not pumped, so APIs such as `setTimeout` or native
`Promise`s are not available. Return values from registered Rust functions are
delivered through bevy_scriptum's own promise object (see
[Calling Rust from JavaScript](./calling_rust_from_script.md)).
