Skip to content

Commit 4e5d550

Browse files
Fix(vm): guard f64 -> i64 saturating cast in display.
1 parent 209c13d commit 4e5d550

File tree

1 file changed

+2
-1
lines changed

1 file changed

+2
-1
lines changed

compiler/src/modules/vm/ops.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,8 @@ impl<'a> VM<'a> {
7171
}
7272
if v.is_float() {
7373
let f = v.as_float();
74-
if f.is_finite() && f == (f as i64) as f64 {
74+
const I64_UPPER: f64 = i64::MAX as f64;
75+
if f.is_finite() && f == f.trunc() && f >= (i64::MIN as f64) && f < I64_UPPER {
7576
let i = f as i64;
7677
let mut b = itoa::Buffer::new();
7778
if i > Val::INT_MAX || i < Val::INT_MIN {

0 commit comments

Comments
 (0)