From 465323a128e2663b8e91ed95067661a8be201e9c Mon Sep 17 00:00:00 2001 From: Yidong Wei Date: Thu, 23 Oct 2025 12:50:28 -0700 Subject: [PATCH 1/2] fix issue that interger 1000001 is written as 1000000 --- src/css-parsing-tests/component_value_list.json | 5 +++-- src/serializer.rs | 10 +++++++++- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/src/css-parsing-tests/component_value_list.json b/src/css-parsing-tests/component_value_list.json index ed26e125..6d4bcddd 100644 --- a/src/css-parsing-tests/component_value_list.json +++ b/src/css-parsing-tests/component_value_list.json @@ -223,7 +223,7 @@ ["error", "bad-url"] ], -"12 +34 -45 .67 +.89 -.01 2.3 +45.0 -0.67", [ +"12 +34 -45 .67 +.89 -.01 2.3 +45.0 -0.67 1000001", [ ["number", "12", 12, "integer"], " ", ["number", "+34", 34, "integer"], " ", ["number", "-45", -45, "integer"], " ", @@ -232,7 +232,8 @@ ["number", "-0.01", -0.01, "number"], " ", ["number", "2.3", 2.3, "number"], " ", ["number", "+45.0", 45, "number"], " ", - ["number", "-0.67", -0.67, "number"] + ["number", "-0.67", -0.67, "number"], " ", + ["number", "1000001", 1000001, "integer"] ], "12e2 +34e+1 -45E-0 .68e+3 +.79e-1 -.01E2 2.3E+1 +45.0e6 -0.67e0", [ diff --git a/src/serializer.rs b/src/serializer.rs index ed325fc9..a320ddd8 100644 --- a/src/serializer.rs +++ b/src/serializer.rs @@ -45,7 +45,15 @@ where scientific: false, } } else { - dtoa_short::write(dest, value)? + if let Some(int_val) = int_value { + write!(dest, "{}", int_val)?; + Notation { + decimal_point: false, + scientific: false, + } + } else { + dtoa_short::write(dest, value)? + } }; if int_value.is_none() && value.fract() == 0. && !notation.decimal_point && !notation.scientific From 526ef82f43e520d97b8b75d015435e296ae11861 Mon Sep 17 00:00:00 2001 From: Yidong Wei Date: Fri, 24 Oct 2025 10:18:29 -0700 Subject: [PATCH 2/2] lint --- src/serializer.rs | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/src/serializer.rs b/src/serializer.rs index a320ddd8..78175925 100644 --- a/src/serializer.rs +++ b/src/serializer.rs @@ -44,16 +44,14 @@ where decimal_point: false, scientific: false, } - } else { - if let Some(int_val) = int_value { - write!(dest, "{}", int_val)?; - Notation { - decimal_point: false, - scientific: false, - } - } else { - dtoa_short::write(dest, value)? + } else if let Some(int_val) = int_value { + write!(dest, "{}", int_val)?; + Notation { + decimal_point: false, + scientific: false, } + } else { + dtoa_short::write(dest, value)? }; if int_value.is_none() && value.fract() == 0. && !notation.decimal_point && !notation.scientific