diff --git a/crates/oxc_linter/src/rules/eslint/sort_keys.rs b/crates/oxc_linter/src/rules/eslint/sort_keys.rs index 1f3b32f510e79..ea5344a4e8ef0 100644 --- a/crates/oxc_linter/src/rules/eslint/sort_keys.rs +++ b/crates/oxc_linter/src/rules/eslint/sort_keys.rs @@ -360,7 +360,9 @@ fn natural_sort(arr: &mut [String]) { loop { match (a_chars.next(), b_chars.next()) { (Some(a_char), Some(b_char)) if a_char == b_char => {} - (Some(a_char), Some(b_char)) if a_char.is_numeric() && b_char.is_numeric() => { + (Some(a_char), Some(b_char)) + if a_char.is_ascii_digit() && b_char.is_ascii_digit() => + { let n1 = take_numeric(&mut a_chars, a_char); let n2 = take_numeric(&mut b_chars, b_char); match n1.cmp(&n2) { @@ -506,6 +508,7 @@ fn test() { "var obj = {'#':1, 'Z':2, À:3, è:4}", Some(serde_json::json!(["asc", { "natural": true }])), ), + ("var obj = {'a²': 1, 'b³': 2}", Some(serde_json::json!(["asc", { "natural": true }]))), ( "var obj = {b_:1, a:2, b:3}", Some(serde_json::json!(["asc", { "natural": true, "minKeys": 4 }])),