nanvm_lib/vm/number/mul.rs
1use core::ops::Mul;
2
3use crate::vm::Number;
4
5impl Mul for Number {
6 type Output = Self;
7 fn mul(self, rhs: Self) -> Self {
8 (self.0 * rhs.0).into()
9 }
10}
11
12#[cfg(test)]
13mod tests {
14 use crate::vm::{Number, number::tests::bits};
15
16 /// `-1 * 0` is `-0`: only a `NaN` is canonicalized, a signed zero keeps its sign.
17 #[test]
18 fn negative_zero_keeps_its_sign() {
19 let z = Number::from(-1) * Number::from(0.0);
20 assert_eq!(bits(z), (-0.0f64).to_bits());
21 }
22}