mirror of
https://github.com/mii443/wasmer.git
synced 2025-12-10 22:58:18 +00:00
Improved BigInt support
This commit is contained in:
@@ -37,10 +37,15 @@ pub fn param_from_js(ty: &Type, js_val: &JsValue) -> Value {
|
|||||||
match ty {
|
match ty {
|
||||||
Type::I32 => Value::I32(js_val.as_f64().unwrap() as _),
|
Type::I32 => Value::I32(js_val.as_f64().unwrap() as _),
|
||||||
Type::I64 => {
|
Type::I64 => {
|
||||||
let number = js_val.as_f64().unwrap_or_else(|| {
|
let number = js_val.as_f64().map(|f| f as i64).unwrap_or_else(|| {
|
||||||
|
if js_val.is_bigint() {
|
||||||
// To support BigInt
|
// To support BigInt
|
||||||
js_sys::Number::from(js_val.clone()).as_f64().unwrap()
|
let big_num: u128 = js_sys::BigInt::from(js_val.clone()).try_into().unwrap();
|
||||||
}) as _;
|
big_num as i64
|
||||||
|
} else {
|
||||||
|
(js_sys::Number::from(js_val.clone()).as_f64().unwrap()) as i64
|
||||||
|
}
|
||||||
|
});
|
||||||
Value::I64(number)
|
Value::I64(number)
|
||||||
}
|
}
|
||||||
Type::F32 => Value::F32(js_val.as_f64().unwrap() as _),
|
Type::F32 => Value::F32(js_val.as_f64().unwrap() as _),
|
||||||
|
|||||||
Reference in New Issue
Block a user