native-executor 0.7.0

Platform-native async task executor
Documentation
#![cfg(target_arch = "wasm32")]

use native_executor::{NativeExecutor, sleep};
use std::time::Duration;
use wasm_bindgen_test::*;

wasm_bindgen_test_configure!(run_in_browser);

#[wasm_bindgen_test(async)]
async fn spawn_and_join_background_task() {
    let exec = NativeExecutor::new();
    let task = exec.spawn(async { 21 + 21 });
    assert_eq!(task.await, 42);
}

#[wasm_bindgen_test(async)]
async fn timer_waits_before_completing() {
    let start = js_sys::Date::now();
    sleep(Duration::from_millis(10)).await;
    let elapsed = js_sys::Date::now() - start;
    assert!(
        elapsed >= 8.0,
        "timer completed too early: elapsed={elapsed}ms"
    );
}