Make NativeFunction use exceptions (panics not converted though)

This commit is contained in:
Andrew Morris
2023-03-21 12:07:04 +11:00
parent 79534a8d38
commit a59b577cd3
19 changed files with 335 additions and 323 deletions

View File

@@ -91,7 +91,7 @@ impl StackFrameTrait for ArrayMappingFrame {
Val::Number(array_i as f64),
Val::Array(array_data.clone()),
],
),
)?,
) {
None => Ok(FrameStepOk::Continue),
Some(val) => Ok(FrameStepOk::Pop(CallResult {

View File

@@ -77,7 +77,7 @@ impl StackFrameTrait for ReduceFrame {
Val::Number(array_i as f64),
Val::Array(array_data.clone()),
],
));
)?);
return Ok(FrameStepOk::Continue);
}

View File

@@ -99,7 +99,7 @@ impl StackFrameTrait for ReduceRightFrame {
Val::Number(array_i as f64),
Val::Array(array_data.clone()),
],
));
)?);
return Ok(FrameStepOk::Continue);
}

View File

@@ -270,7 +270,7 @@ impl StackFrameTrait for SortFrame {
std::panic!("Not implemented: exception: comparator is not a function");
}
LoadFunctionResult::NativeFunction(native_fn) => {
let res = native_fn(&mut Val::Undefined, vec![left, right]).to_number();
let res = native_fn(&mut Val::Undefined, vec![left, right])?.to_number();
let should_swap = match res.is_nan() {
true => false,