Skip to content

Commit 4815b18

Browse files
committed
fix(es/minify): use different thresholds depending on is_member_obj
1 parent d2b8460 commit 4815b18

File tree

3 files changed

+13
-6
lines changed

3 files changed

+13
-6
lines changed
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
0xc815778a650a.toString();21999452542e4.toString();123e5.toString(1);12300001..toString(1);
1+
0xc815778a650a.toString();21999452542e4.toString();123e5.toString(1);0xbbaee1.toString(1);

crates/swc_ecma_codegen/src/lit.rs

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -216,7 +216,7 @@ where
216216
pub fn emit_num_lit_internal(
217217
&mut self,
218218
num: &Number,
219-
mut detect_dot: bool,
219+
is_member_obj: bool,
220220
) -> std::result::Result<bool, io::Error> {
221221
self.wr.commit_pending_semi()?;
222222

@@ -229,6 +229,8 @@ where
229229
return Ok(false);
230230
}
231231

232+
let mut detect_dot = is_member_obj;
233+
232234
let mut striped_raw = None;
233235
let mut value = String::default();
234236

@@ -238,7 +240,7 @@ where
238240
if num.value.is_infinite() && num.raw.is_some() {
239241
self.wr.write_str_lit(DUMMY_SP, num.raw.as_ref().unwrap())?;
240242
} else {
241-
value = minify_number(num.value, &mut detect_dot);
243+
value = minify_number(num.value, is_member_obj, &mut detect_dot);
242244
self.wr.write_str_lit(DUMMY_SP, &value)?;
243245
}
244246
} else {
@@ -529,12 +531,17 @@ pub fn get_quoted_utf16(v: &str, ascii_only: bool, target: EsVersion) -> (AsciiC
529531
(quote_char, CowStr::Owned(buf))
530532
}
531533

532-
pub fn minify_number(num: f64, detect_dot: &mut bool) -> String {
534+
pub fn minify_number(num: f64, is_member_obj: bool, detect_dot: &mut bool) -> String {
533535
'hex: {
534536
if num.fract() == 0.0 && num.abs() <= u64::MAX as f64 {
535537
let int = num.abs() as u64;
536538

537-
if int < 1_000_000_000_000 {
539+
let threshhold = if is_member_obj {
540+
100_000
541+
} else {
542+
100_000_000_000
543+
};
544+
if int < threshhold {
538545
break 'hex;
539546
}
540547

crates/swc_ecma_codegen/tests/fixture/number/output.min.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)