From bd9176f7652faac738a9b182bcde02dbfbe531e9 Mon Sep 17 00:00:00 2001 From: Yaroslav Bolyukin Date: Wed, 03 May 2023 17:29:04 +0000 Subject: [PATCH] fix: std.format freezes with '%g' % 0 Upstream issue: https://github.com/google/go-jsonnet/issues/554 --- --- a/crates/jrsonnet-evaluator/src/stdlib/format.rs +++ b/crates/jrsonnet-evaluator/src/stdlib/format.rs @@ -430,6 +430,8 @@ for b in frac_str.as_bytes().iter().rev() { if *b == b'0' { trim -= 1; + } else { + break; } } } @@ -556,7 +558,11 @@ } ConvTypeV::Shorter => { let value = f64::from_untyped(value.clone())?; - let exponent = value.log10().floor(); + let exponent = if value == 0.0 { + 0.0 + } else { + value.abs().log10().floor() + }; if exponent < -4.0 || exponent >= fpprec as f64 { render_float_sci( &mut tmp_out, -- gitstuff