Crate boa_runtime
source ·Expand description
Boa’s boa_runtime crate contains an example runtime and basic runtime features and
functionality for the boa_engine
crate for runtime implementors.
Example: Adding Web API’s Console Object
- Add boa_runtime as a dependency to your project along with boa_engine.
use boa_engine::{ Context, Source, property::Attribute, js_string };
use boa_runtime::Console;
// Create the context.
let mut context = Context::default();
// Initialize the Console object.
let console = Console::init(&mut context);
// Register the console as a global property to the context.
context
.register_global_property(js_string!(Console::NAME), console, Attribute::all())
.expect("the console object shouldn't exist yet");
// JavaScript source for parsing.
let js_code = "console.log('Hello World from a JS code string!')";
// Parse the source code
match context.eval(Source::from_bytes(js_code)) {
Ok(res) => {
println!(
"{}",
res.to_string(&mut context).unwrap().to_std_string_escaped()
);
}
Err(e) => {
// Pretty print the error
eprintln!("Uncaught {e}");
}
};
About Boa
Boa is an open-source, experimental ECMAScript Engine written in Rust for lexing, parsing and executing ECMAScript/JavaScript. Currently, Boa supports some of the language. More information can be viewed at Boa’s website.
Try out the most recent release with Boa’s live demo playground.
Boa Crates
boa_ast
- Boa’s ECMAScript Abstract Syntax Tree.boa_engine
- Boa’s implementation of ECMAScript builtin objects and execution.boa_gc
- Boa’s garbage collector.boa_interner
- Boa’s string interner.boa_parser
- Boa’s lexer and parser.boa_profiler
- Boa’s code profiler.boa_icu_provider
- Boa’s ICU4X data provider.boa_runtime
- Boa’s WebAPI features.
Modules
- console 🔒Boa’s implementation of JavaScript’s
console
Web API object.
Structs
- This is the internal console object state.