7 unstable releases (3 breaking)
new 0.20.0 | Dec 5, 2024 |
---|---|
0.19.1 | Sep 12, 2024 |
0.19.0 | Jul 11, 2024 |
0.18.0 | Mar 7, 2024 |
0.17.0 | Jul 8, 2023 |
#303 in WebAssembly
310 downloads per month
Used in 6 crates
(4 directly)
4.5MB
85K
SLoC
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::{js_string, property::Attribute, Context, Source};
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}");
# panic!("An error occured in boa_runtime's js_code");
}
};
Dependencies
~12–18MB
~270K SLoC