#run-time #js #javascript #wasm-engine

boa_runtime

Boa JavaScript 引擎的示例运行时

5 个不稳定版本

0.19.0 2024 年 7 月 11 日
0.18.0 2024 年 3 月 7 日
0.17.3 2023 年 9 月 26 日
0.17.1 2023 年 9 月 26 日
0.17.0 2023 年 7 月 8 日

#229 in WebAssembly

Download history 762/week @ 2024-05-03 1093/week @ 2024-05-10 592/week @ 2024-05-17 55/week @ 2024-05-24 124/week @ 2024-05-31 100/week @ 2024-06-07 211/week @ 2024-06-14 89/week @ 2024-06-21 110/week @ 2024-06-28 165/week @ 2024-07-05 488/week @ 2024-07-12 357/week @ 2024-07-19 181/week @ 2024-07-26 180/week @ 2024-08-02 460/week @ 2024-08-09 363/week @ 2024-08-16

1,254 每月下载量
用于 6 Crates(4 个直接使用)

Unlicense OR MIT

4.5MB
81K SLoC

Boa 的 boa_runtime Crate 包含一个示例运行时以及为运行时实现者提供的 boa_engine Crate 的基本运行时功能和功能。

示例:添加 Web API 的 Console 对象

  1. boa_runtimeboa_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");
    }
};

依赖项

~12–19MB
~267K SLoC