js-sys

js-sys 程式庫 提供對 ECMAScript 標準保證存在於每個 JavaScript 環境中的所有全域 API 的原始繫結,其原始碼位於 wasm-bindgen/crates/js-sys。透過 js-sys 程式庫,我們可以操作 ObjectArrayFunctionMapSet 等等,而無需手動撰寫 #[wasm_bindgen] 導入。

此程式庫已發佈版本的說明文件可在 docs.rs 上找到,但您也可以查看該程式庫的 master 分支說明文件

例如,我們可以呼叫 JavaScript Function 回呼,並使用 Date.now() 來計時其執行時間,而我們無需自己撰寫任何 JS 導入

#![allow(unused)]
fn main() {
use wasm_bindgen::prelude::*;

#[wasm_bindgen]
pub fn timed(callback: &js_sys::Function) -> f64 {
    let then = js_sys::Date::now();
    callback.apply(JsValue::null(), &js_sys::Array::new()).unwrap();
    let now = js_sys::Date::now();
    now - then
}
}

js-sys 程式庫不包含任何 Web API 的繫結,例如 document.querySelectorAll。這些將會是 web-sys 程式庫的一部分。