Skip to content

Commit

Permalink
test(es): Add one more test for a wrong issue (#7545)
Browse files Browse the repository at this point in the history
**Related issue:**

 - Closes #7513.
  • Loading branch information
kdy1 committed Jun 20, 2023
1 parent 17e339f commit 862f095
Showing 1 changed file with 42 additions and 1 deletion.
43 changes: 42 additions & 1 deletion crates/swc/tests/projects.rs
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,14 @@ use std::{
path::{Path, PathBuf},
};

use anyhow::Context;
use rayon::prelude::*;
use swc::{
config::{
BuiltInput, Config, FileMatcher, JsMinifyOptions, JscConfig, ModuleConfig, Options,
SourceMapsConfig, TransformConfig,
},
BoolOrDataConfig, Compiler, TransformOutput,
try_with_handler, BoolOrDataConfig, Compiler, TransformOutput,
};
use swc_common::{
chain,
Expand All @@ -19,6 +20,7 @@ use swc_common::{
BytePos, FileName, Globals, SourceMap, GLOBALS,
};
use swc_ecma_ast::{EsVersion, *};
use swc_ecma_minifier::option::MangleOptions;
use swc_ecma_parser::{EsConfig, Syntax, TsConfig};
use swc_ecma_transforms::{
helpers::{self, Helpers},
Expand Down Expand Up @@ -1089,3 +1091,42 @@ function test() {
assert_eq!(program.code, "function n(){return{a:1,b:2,c:3}}");
})
}

#[test]
fn issue_7513_2() {
static INPUT: &str = "const cachedTextDecoder = { ignoreBOM: true, fatal: true };";

let cm = Lrc::<SourceMap>::default();
let c = swc::Compiler::new(cm.clone());
let output = GLOBALS
.set(&Default::default(), || {
try_with_handler(cm.clone(), Default::default(), |handler| {
let fm = cm.new_source_file(FileName::Anon, INPUT.to_string());

c.minify(
fm,
handler,
&JsMinifyOptions {
compress: BoolOrDataConfig::from_bool(true),
mangle: BoolOrDataConfig::from_obj(MangleOptions {
props: None,
top_level: Some(true),
keep_class_names: false,
keep_fn_names: false,
keep_private_props: false,
..Default::default()
}),
keep_classnames: false,
keep_fnames: false,
toplevel: true,
..Default::default()
},
)
.context("failed to minify")
})
})
.unwrap();

println!("{}", output.code);
assert_eq!(output.code, "const a={ignoreBOM:!0,fatal:!0};");
}

2 comments on commit 862f095

@github-actions
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Benchmark

Benchmark suite Current: 862f095 Previous: bc6e950 Ratio
es/full/bugs-1 368153 ns/iter (± 8988) 304868 ns/iter (± 6588) 1.21
es/full/minify/libraries/antd 1957497648 ns/iter (± 16697300) 1536383498 ns/iter (± 10731218) 1.27
es/full/minify/libraries/d3 393010211 ns/iter (± 2975036) 332416896 ns/iter (± 2600843) 1.18
es/full/minify/libraries/echarts 1569632424 ns/iter (± 10507948) 1249039310 ns/iter (± 9711449) 1.26
es/full/minify/libraries/jquery 111914704 ns/iter (± 753152) 96057159 ns/iter (± 336217) 1.17
es/full/minify/libraries/lodash 135433011 ns/iter (± 1081300) 113611575 ns/iter (± 342465) 1.19
es/full/minify/libraries/moment 64664272 ns/iter (± 292697) 56478523 ns/iter (± 143914) 1.14
es/full/minify/libraries/react 23482164 ns/iter (± 148448) 20146393 ns/iter (± 48220) 1.17
es/full/minify/libraries/terser 315463966 ns/iter (± 4604694) 254796156 ns/iter (± 3242108) 1.24
es/full/minify/libraries/three 557124846 ns/iter (± 9562440) 458235369 ns/iter (± 1416470) 1.22
es/full/minify/libraries/typescript 3730452867 ns/iter (± 51405684) 3084210818 ns/iter (± 10002034) 1.21
es/full/minify/libraries/victory 843763923 ns/iter (± 19319781) 675803181 ns/iter (± 8051840) 1.25
es/full/minify/libraries/vue 162467735 ns/iter (± 477905) 139462043 ns/iter (± 682728) 1.16
es/full/codegen/es3 41598 ns/iter (± 115) 36777 ns/iter (± 103) 1.13
es/full/codegen/es5 41655 ns/iter (± 52) 36936 ns/iter (± 96) 1.13
es/full/codegen/es2015 41659 ns/iter (± 64) 36935 ns/iter (± 88) 1.13
es/full/codegen/es2016 41577 ns/iter (± 946) 36841 ns/iter (± 136) 1.13
es/full/codegen/es2017 41558 ns/iter (± 79) 36839 ns/iter (± 72) 1.13
es/full/codegen/es2018 41648 ns/iter (± 48) 36838 ns/iter (± 62) 1.13
es/full/codegen/es2019 41636 ns/iter (± 50) 36788 ns/iter (± 92) 1.13
es/full/codegen/es2020 41629 ns/iter (± 67) 36810 ns/iter (± 86) 1.13
es/full/all/es3 206801136 ns/iter (± 2893861) 181353618 ns/iter (± 850724) 1.14
es/full/all/es5 196358820 ns/iter (± 3407312) 171621466 ns/iter (± 1053168) 1.14
es/full/all/es2015 153024974 ns/iter (± 2695501) 128157203 ns/iter (± 420804) 1.19
es/full/all/es2016 152770726 ns/iter (± 2649310) 127422648 ns/iter (± 757122) 1.20
es/full/all/es2017 152180781 ns/iter (± 1751738) 126188504 ns/iter (± 659844) 1.21
es/full/all/es2018 151399472 ns/iter (± 2130031) 124846542 ns/iter (± 625378) 1.21
es/full/all/es2019 149395573 ns/iter (± 2854165) 124041425 ns/iter (± 325487) 1.20
es/full/all/es2020 147864734 ns/iter (± 1513178) 119348430 ns/iter (± 675089) 1.24
es/full/parser 601614 ns/iter (± 11404) 520870 ns/iter (± 7921) 1.16
es/full/base/fixer 26390 ns/iter (± 31) 18073 ns/iter (± 68) 1.46
es/full/base/resolver_and_hygiene 105116 ns/iter (± 119) 91015 ns/iter (± 264) 1.15
serialization of serde 257 ns/iter (± 0) 301 ns/iter (± 10) 0.85
css/minify/libraries/bootstrap 36653039 ns/iter (± 276496) 31475291 ns/iter (± 135406) 1.16
css/visitor/compare/clone 2369579 ns/iter (± 5340) 1984439 ns/iter (± 17341) 1.19
css/visitor/compare/visit_mut_span 2559930 ns/iter (± 21380) 2139222 ns/iter (± 17944) 1.20
css/visitor/compare/visit_mut_span_panic 2595984 ns/iter (± 4567) 2222086 ns/iter (± 21816) 1.17
css/visitor/compare/fold_span 3348778 ns/iter (± 12694) 2888523 ns/iter (± 19511) 1.16
css/visitor/compare/fold_span_panic 3501459 ns/iter (± 11998) 3115481 ns/iter (± 23065) 1.12
css/lexer/bootstrap_5_1_3 5582659 ns/iter (± 3801) 4774304 ns/iter (± 12669) 1.17
css/lexer/foundation_6_7_4 4714790 ns/iter (± 2540) 4026696 ns/iter (± 3666) 1.17
css/lexer/tailwind_3_1_1 894831 ns/iter (± 7257) 764220 ns/iter (± 368) 1.17
css/parser/bootstrap_5_1_3 24177696 ns/iter (± 66526) 20882466 ns/iter (± 88467) 1.16
css/parser/foundation_6_7_4 19188926 ns/iter (± 40928) 16799282 ns/iter (± 35547) 1.14
css/parser/tailwind_3_1_1 3683014 ns/iter (± 4439) 3226824 ns/iter (± 2152) 1.14
es/codegen/colors 730980 ns/iter (± 396538) 738113 ns/iter (± 401415) 0.99
es/codegen/large 3075730 ns/iter (± 1600886) 2974097 ns/iter (± 1555813) 1.03
es/codegen/with-parser/colors 58461 ns/iter (± 470) 49589 ns/iter (± 337) 1.18
es/codegen/with-parser/large 584522 ns/iter (± 1539) 520164 ns/iter (± 892) 1.12
es/minify/libraries/antd 1730974050 ns/iter (± 18944602) 1363847057 ns/iter (± 14756634) 1.27
es/minify/libraries/d3 346211369 ns/iter (± 2013140) 289695410 ns/iter (± 1769254) 1.20
es/minify/libraries/echarts 1350339742 ns/iter (± 19034162) 1100065190 ns/iter (± 5592223) 1.23
es/minify/libraries/jquery 98312719 ns/iter (± 873061) 84483599 ns/iter (± 453576) 1.16
es/minify/libraries/lodash 122425453 ns/iter (± 790221) 103725037 ns/iter (± 1771965) 1.18
es/minify/libraries/moment 57450508 ns/iter (± 595941) 49783061 ns/iter (± 120639) 1.15
es/minify/libraries/react 20902398 ns/iter (± 78173) 18099615 ns/iter (± 46140) 1.15
es/minify/libraries/terser 269225698 ns/iter (± 3047675) 219263480 ns/iter (± 1337719) 1.23
es/minify/libraries/three 463055830 ns/iter (± 3961138) 393064659 ns/iter (± 3654424) 1.18
es/minify/libraries/typescript 3227353129 ns/iter (± 38307744) 2669555368 ns/iter (± 6584085) 1.21
es/minify/libraries/victory 714809029 ns/iter (± 18350374) 584094364 ns/iter (± 5272088) 1.22
es/minify/libraries/vue 144844542 ns/iter (± 656438) 125507110 ns/iter (± 429211) 1.15
es/visitor/compare/clone 2422578 ns/iter (± 20963) 2119112 ns/iter (± 16518) 1.14
es/visitor/compare/visit_mut_span 2797350 ns/iter (± 14475) 2466543 ns/iter (± 5400) 1.13
es/visitor/compare/visit_mut_span_panic 2866757 ns/iter (± 9120) 2504146 ns/iter (± 2631) 1.14
es/visitor/compare/fold_span 3945107 ns/iter (± 15182) 3532997 ns/iter (± 6216) 1.12
es/visitor/compare/fold_span_panic 4066668 ns/iter (± 12901) 3674280 ns/iter (± 10399) 1.11
es/lexer/colors 14980 ns/iter (± 18) 13287 ns/iter (± 82) 1.13
es/lexer/angular 7132425 ns/iter (± 5956) 6351332 ns/iter (± 12847) 1.12
es/lexer/backbone 865101 ns/iter (± 392) 810037 ns/iter (± 1382) 1.07
es/lexer/jquery 4845577 ns/iter (± 1611) 4595209 ns/iter (± 5917) 1.05
es/lexer/jquery mobile 7530181 ns/iter (± 9901) 7071353 ns/iter (± 15830) 1.06
es/lexer/mootools 3782236 ns/iter (± 3318) 3631002 ns/iter (± 4154) 1.04
es/lexer/underscore 713535 ns/iter (± 575) 677087 ns/iter (± 2436) 1.05
es/lexer/three 22613818 ns/iter (± 32566) 21372864 ns/iter (± 19826) 1.06
es/lexer/yui 4353057 ns/iter (± 2704) 4068375 ns/iter (± 4768) 1.07
es/parser/colors 33190 ns/iter (± 76) 29234 ns/iter (± 134) 1.14
es/parser/angular 17230428 ns/iter (± 166014) 14396634 ns/iter (± 57803) 1.20
es/parser/backbone 2442057 ns/iter (± 13514) 2141304 ns/iter (± 7732) 1.14
es/parser/jquery 13332193 ns/iter (± 108461) 11691023 ns/iter (± 55509) 1.14
es/parser/jquery mobile 21959375 ns/iter (± 293958) 18008890 ns/iter (± 196915) 1.22
es/parser/mootools 10155489 ns/iter (± 55766) 8911281 ns/iter (± 18271) 1.14
es/parser/underscore 2082965 ns/iter (± 10106) 1851681 ns/iter (± 9458) 1.12
es/parser/three 61645580 ns/iter (± 474915) 51863022 ns/iter (± 302801) 1.19
es/parser/yui 10321382 ns/iter (± 143439) 8978298 ns/iter (± 36464) 1.15
es/preset-env/usage/builtin_type 152684 ns/iter (± 33528) 148053 ns/iter (± 33793) 1.03
es/preset-env/usage/property 29283 ns/iter (± 85) 20061 ns/iter (± 100) 1.46
es/resolver/typescript 129678545 ns/iter (± 1580229) 98357073 ns/iter (± 1079409) 1.32
es/fixer/typescript 86906773 ns/iter (± 565633) 69101185 ns/iter (± 502945) 1.26
es/hygiene/typescript 211031261 ns/iter (± 2163799) 149931932 ns/iter (± 1818044) 1.41
es/resolver_with_hygiene/typescript 431166655 ns/iter (± 2647033) 319098350 ns/iter (± 1434456) 1.35
es/visitor/base-perf/module_clone 86229 ns/iter (± 379) 62209 ns/iter (± 249) 1.39
es/visitor/base-perf/fold_empty 95264 ns/iter (± 320) 65143 ns/iter (± 221) 1.46
es/visitor/base-perf/fold_noop_impl_all 95625 ns/iter (± 534) 65229 ns/iter (± 168) 1.47
es/visitor/base-perf/fold_noop_impl_vec 96142 ns/iter (± 494) 65482 ns/iter (± 246) 1.47
es/visitor/base-perf/boxing_boxed_clone 60 ns/iter (± 0) 58 ns/iter (± 0) 1.03
es/visitor/base-perf/boxing_unboxed_clone 45 ns/iter (± 0) 39 ns/iter (± 0) 1.15
es/visitor/base-perf/boxing_boxed 117 ns/iter (± 0) 114 ns/iter (± 0) 1.03
es/visitor/base-perf/boxing_unboxed 81 ns/iter (± 0) 80 ns/iter (± 0) 1.01
es/visitor/base-perf/visit_contains_this 3476 ns/iter (± 59) 2604 ns/iter (± 13) 1.33
es/base/parallel/resolver/typescript 7857945466 ns/iter (± 488061078) 4641209027 ns/iter (± 270639090) 1.69
es/base/parallel/hygiene/typescript 2398077677 ns/iter (± 15123815) 1601523798 ns/iter (± 21673811) 1.50
misc/visitors/time-complexity/time 5 104 ns/iter (± 0) 104 ns/iter (± 2) 1
misc/visitors/time-complexity/time 10 359 ns/iter (± 1) 268 ns/iter (± 0) 1.34
misc/visitors/time-complexity/time 15 690 ns/iter (± 1) 586 ns/iter (± 40) 1.18
misc/visitors/time-complexity/time 20 1255 ns/iter (± 11) 941 ns/iter (± 8) 1.33
misc/visitors/time-complexity/time 40 6280 ns/iter (± 6) 3770 ns/iter (± 40) 1.67
misc/visitors/time-complexity/time 60 15795 ns/iter (± 13) 7856 ns/iter (± 32) 2.01
es/full-target/es2016 271441 ns/iter (± 500) 241693 ns/iter (± 1008) 1.12
es/full-target/es2017 260810 ns/iter (± 412) 227730 ns/iter (± 930) 1.15
es/full-target/es2018 250280 ns/iter (± 330) 213898 ns/iter (± 599) 1.17
es2020_nullish_coalescing 99324 ns/iter (± 285) 72105 ns/iter (± 408) 1.38
es2020_optional_chaining 89200 ns/iter (± 173) 83926 ns/iter (± 349) 1.06
es2022_class_properties 157041 ns/iter (± 309) 120553 ns/iter (± 532) 1.30
es2018_object_rest_spread 100803 ns/iter (± 173) 74672 ns/iter (± 266) 1.35
es2019_optional_catch_binding 89137 ns/iter (± 243) 64620 ns/iter (± 159) 1.38
es2017_async_to_generator 89959 ns/iter (± 515) 65198 ns/iter (± 197) 1.38
es2016_exponentiation 96712 ns/iter (± 208) 70768 ns/iter (± 213) 1.37
es2015_arrow 99110 ns/iter (± 213) 73036 ns/iter (± 208) 1.36
es2015_block_scoped_fn 97523 ns/iter (± 314) 70151 ns/iter (± 743) 1.39
es2015_block_scoping 184734 ns/iter (± 228) 133663 ns/iter (± 516) 1.38

This comment was automatically generated by workflow using github-action-benchmark.

@github-actions
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Performance Alert ⚠️

Possible performance regression was detected for benchmark.
Benchmark result of this commit is worse than the previous benchmark result exceeding threshold 2.

Benchmark suite Current: 862f095 Previous: bc6e950 Ratio
misc/visitors/time-complexity/time 60 15795 ns/iter (± 13) 7856 ns/iter (± 32) 2.01

This comment was automatically generated by workflow using github-action-benchmark.

CC: @kdy1

Please sign in to comment.