nanvm_lib/vm/number/rem.rs
1use core::ops::Rem;
2
3use crate::vm::Number;
4
5impl Rem for Number {
6 type Output = Self;
7 fn rem(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 `NaN` in JavaScript, and the canonical one here.
17 #[test]
18 fn nan_is_canonical() {
19 let r = Number::from(1.0) % Number::from(0.0);
20 assert_eq!(bits(r), bits(Number::NAN));
21 }
22}