emscripten_rs_sys 0.4.0

Autogenerated Rust bindings to the Emscripten API
Documentation
use emscripten_rs_sys::em_asm::*;

#[test]
fn js_asm() {
    let a = 2;
    let b = 3;
    let result = js_asm! { |a,b| -> i32 { return a+b*b; } };
    assert_eq!(result, 2 + 3 * 3);
}

#[test]
fn mixed_argument_types_and_double_return() {
    let integer = 7i32;
    let double = 0.25f64;
    let bigint = 42i64;
    let text = c"hello".as_ptr();
    let result = js_asm! { |integer, double, bigint, text| -> f64 {
        const length = UTF8ToString(text).length;
        const convertedBigint = Number(bigint);
        const fractionalPart = double;
        return integer + fractionalPart + convertedBigint + length;
    }};
    assert_eq!(result, 54.25);
}

#[test]
fn argument_type_differs_from_return_type() {
    let double = 9.5f64;
    assert_eq!(
        js_asm! { |double| -> i32 { return Math.floor(double); } },
        9
    );
}