mirror of
https://github.com/mii443/wasmer.git
synced 2025-12-10 06:38:22 +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 {
|
||||
Type::I32 => Value::I32(js_val.as_f64().unwrap() as _),
|
||||
Type::I64 => {
|
||||
let number = js_val.as_f64().unwrap_or_else(|| {
|
||||
// To support BigInt
|
||||
js_sys::Number::from(js_val.clone()).as_f64().unwrap()
|
||||
}) as _;
|
||||
let number = js_val.as_f64().map(|f| f as i64).unwrap_or_else(|| {
|
||||
if js_val.is_bigint() {
|
||||
// To support BigInt
|
||||
let big_num: u128 = js_sys::BigInt::from(js_val.clone()).try_into().unwrap();
|
||||
big_num as i64
|
||||
} else {
|
||||
(js_sys::Number::from(js_val.clone()).as_f64().unwrap()) as i64
|
||||
}
|
||||
});
|
||||
Value::I64(number)
|
||||
}
|
||||
Type::F32 => Value::F32(js_val.as_f64().unwrap() as _),
|
||||
|
||||
Reference in New Issue
Block a user