diff --git a/crates/swc_ecma_ast/src/lit.rs b/crates/swc_ecma_ast/src/lit.rs index cef39e5b7fff1..c67d157015c57 100644 --- a/crates/swc_ecma_ast/src/lit.rs +++ b/crates/swc_ecma_ast/src/lit.rs @@ -353,7 +353,7 @@ impl EqIgnoreSpan for Number { impl Hash for Number { fn hash(&self, state: &mut H) { fn integer_decode(val: f64) -> (u64, i16, i8) { - let bits: u64 = unsafe { mem::transmute(val) }; + let bits: u64 = val.to_bits(); let sign: i8 = if bits >> 63 == 0 { 1 } else { -1 }; let mut exponent: i16 = ((bits >> 52) & 0x7ff) as i16; let mantissa = if exponent == 0 {