diff --git a/src/renderer/renderer.rs b/src/renderer/renderer.rs index e282791..50f592c 100644 --- a/src/renderer/renderer.rs +++ b/src/renderer/renderer.rs @@ -957,24 +957,29 @@ impl<'a> DustRenderer<'a> { maybe_ice .as_ref() .map(|ice| ice.get_context_element_reference()) + .map(|ce| ce.cast_to_type("number")) }); let right_side_ce = right_side.as_ref().map(|maybe_ice| { maybe_ice .as_ref() .map(|ice| ice.get_context_element_reference()) + .map(|ce| ce.cast_to_type("number")) }); - // TODO convert string to number or render NaN - - println!( - "Doing {:?} {:?} {:?}", - left_side, method_rendered, right_side - ); + // println!( + // "Doing {:?} {:?} {:?}", + // left_side, method_rendered, right_side + // ); return match method_rendered.as_str() { "add" => match (left_side_ce, right_side_ce) { (None, _) | (Some(Err(_)), _) | (_, None) | (_, Some(Err(_))) => None, - (Some(Ok(l)), Some(Ok(r))) => l.math_add(r), + (Some(Ok(None)), _) | (_, Some(Ok(None))) => Some(IceResult::from_owned( + OwnedLiteral::LString("NaN".to_owned()), + )), + (Some(Ok(Some(l))), Some(Ok(Some(r)))) => l + .get_context_element_reference() + .math_add(r.get_context_element_reference()), }, "subtract" => todo!(), "multiply" => todo!(),