Skip to content

Commit

Permalink
fix(bindings/cli): Change order of checking inputs to workaround a Wi…
Browse files Browse the repository at this point in the history
…ndows issue (#7077)
  • Loading branch information
realtimetodie committed Mar 14, 2023
1 parent afe5c70 commit 7bbec92
Showing 1 changed file with 30 additions and 28 deletions.
58 changes: 30 additions & 28 deletions bindings/swc_cli/src/commands/compile.rs
Expand Up @@ -347,34 +347,7 @@ impl CompileOptions {
fn collect_inputs(&self) -> anyhow::Result<Vec<InputContext>> {
let compiler = COMPILER.clone();

let stdin_input = collect_stdin_input();
if stdin_input.is_some() && !self.files.is_empty() {
anyhow::bail!("Cannot specify inputs from stdin and files at the same time");
}

if let Some(stdin_input) = stdin_input {
let options = self.build_transform_options(&self.filename.as_deref())?;

let fm = compiler.cm.new_source_file(
if options.filename.is_empty() {
FileName::Anon
} else {
FileName::Real(options.filename.clone().into())
},
stdin_input,
);

return Ok(vec![InputContext {
options,
fm,
compiler,
file_path: self
.filename
.clone()
.unwrap_or_else(|| PathBuf::from("unknown")),
file_extension: self.out_file_extension.clone().into(),
}]);
} else if !self.files.is_empty() {
if !self.files.is_empty() {
let included_extensions = if let Some(extensions) = &self.extensions {
extensions.clone()
} else {
Expand Down Expand Up @@ -407,6 +380,35 @@ impl CompileOptions {
.collect::<anyhow::Result<Vec<InputContext>>>();
}

let stdin_input = collect_stdin_input();
if stdin_input.is_some() && !self.files.is_empty() {
anyhow::bail!("Cannot specify inputs from stdin and files at the same time");
}

if let Some(stdin_input) = stdin_input {
let options = self.build_transform_options(&self.filename.as_deref())?;

let fm = compiler.cm.new_source_file(
if options.filename.is_empty() {
FileName::Anon
} else {
FileName::Real(options.filename.clone().into())
},
stdin_input,
);

return Ok(vec![InputContext {
options,
fm,
compiler,
file_path: self
.filename
.clone()
.unwrap_or_else(|| PathBuf::from("unknown")),
file_extension: self.out_file_extension.clone().into(),
}]);
}

anyhow::bail!("Input is empty");
}

Expand Down

1 comment on commit 7bbec92

@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: 7bbec92 Previous: 7849a2d Ratio
es/full/bugs-1 302258 ns/iter (± 7305) 303296 ns/iter (± 5819) 1.00
es/full/minify/libraries/antd 1597681441 ns/iter (± 26274939) 1530579256 ns/iter (± 8172046) 1.04
es/full/minify/libraries/d3 293140097 ns/iter (± 6655538) 293107222 ns/iter (± 5798555) 1.00
es/full/minify/libraries/echarts 1209589799 ns/iter (± 16149479) 1206924723 ns/iter (± 12649688) 1.00
es/full/minify/libraries/jquery 88832773 ns/iter (± 413358) 89860948 ns/iter (± 787278) 0.99
es/full/minify/libraries/lodash 104362304 ns/iter (± 1759125) 104167116 ns/iter (± 668083) 1.00
es/full/minify/libraries/moment 51463951 ns/iter (± 597611) 52245996 ns/iter (± 197820) 0.99
es/full/minify/libraries/react 18821561 ns/iter (± 99419) 18986126 ns/iter (± 157218) 0.99
es/full/minify/libraries/terser 241455411 ns/iter (± 5294861) 250263573 ns/iter (± 3707878) 0.96
es/full/minify/libraries/three 417532611 ns/iter (± 4370638) 438465465 ns/iter (± 7680318) 0.95
es/full/minify/libraries/typescript 3024657620 ns/iter (± 23228000) 2939200141 ns/iter (± 22624887) 1.03
es/full/minify/libraries/victory 632399901 ns/iter (± 9137791) 622066068 ns/iter (± 15119860) 1.02
es/full/minify/libraries/vue 127267166 ns/iter (± 757558) 128129728 ns/iter (± 1625328) 0.99
es/full/codegen/es3 26139 ns/iter (± 71) 26119 ns/iter (± 75) 1.00
es/full/codegen/es5 26275 ns/iter (± 164) 26235 ns/iter (± 42) 1.00
es/full/codegen/es2015 26160 ns/iter (± 89) 26203 ns/iter (± 37) 1.00
es/full/codegen/es2016 26226 ns/iter (± 50) 26201 ns/iter (± 86) 1.00
es/full/codegen/es2017 26202 ns/iter (± 97) 26131 ns/iter (± 55) 1.00
es/full/codegen/es2018 26197 ns/iter (± 66) 26151 ns/iter (± 89) 1.00
es/full/codegen/es2019 26233 ns/iter (± 70) 26237 ns/iter (± 107) 1.00
es/full/codegen/es2020 26228 ns/iter (± 110) 26167 ns/iter (± 47) 1.00
es/full/all/es3 178377478 ns/iter (± 2887072) 181417756 ns/iter (± 4312876) 0.98
es/full/all/es5 171932574 ns/iter (± 3451429) 170243483 ns/iter (± 3088782) 1.01
es/full/all/es2015 136364704 ns/iter (± 1493814) 135899122 ns/iter (± 2668217) 1.00
es/full/all/es2016 132098699 ns/iter (± 1323260) 134436066 ns/iter (± 1768720) 0.98
es/full/all/es2017 130588078 ns/iter (± 1344936) 132290127 ns/iter (± 1937980) 0.99
es/full/all/es2018 127600277 ns/iter (± 1443636) 127833289 ns/iter (± 1474646) 1.00
es/full/all/es2019 124706385 ns/iter (± 1667516) 125476611 ns/iter (± 446474) 0.99
es/full/all/es2020 117221288 ns/iter (± 1155840) 118390720 ns/iter (± 831530) 0.99
es/full/parser 533218 ns/iter (± 8548) 533921 ns/iter (± 7948) 1.00
es/full/base/fixer 22239 ns/iter (± 62) 22409 ns/iter (± 51) 0.99
es/full/base/resolver_and_hygiene 82663 ns/iter (± 184) 83670 ns/iter (± 123) 0.99
serialization of ast node 123 ns/iter (± 0) 124 ns/iter (± 0) 0.99
serialization of serde 126 ns/iter (± 0) 127 ns/iter (± 0) 0.99
css/minify/libraries/bootstrap 28079792 ns/iter (± 90201) 28545319 ns/iter (± 230319) 0.98
css/visitor/compare/clone 2092852 ns/iter (± 14417) 2098324 ns/iter (± 13752) 1.00
css/visitor/compare/visit_mut_span 2276561 ns/iter (± 5600) 2283858 ns/iter (± 4392) 1.00
css/visitor/compare/visit_mut_span_panic 2319828 ns/iter (± 6277) 2346036 ns/iter (± 3674) 0.99
css/visitor/compare/fold_span 3015710 ns/iter (± 19061) 3026103 ns/iter (± 19424) 1.00
css/visitor/compare/fold_span_panic 3185922 ns/iter (± 26515) 3185206 ns/iter (± 18291) 1.00
css/lexer/bootstrap_5_1_3 5142318 ns/iter (± 10457) 5168996 ns/iter (± 7397) 0.99
css/lexer/foundation_6_7_4 4345054 ns/iter (± 7532) 4358967 ns/iter (± 5933) 1.00
css/lexer/tailwind_3_1_1 822128 ns/iter (± 1806) 826949 ns/iter (± 600) 0.99
css/parser/bootstrap_5_1_3 21613396 ns/iter (± 39828) 21956766 ns/iter (± 148936) 0.98
css/parser/foundation_6_7_4 17281291 ns/iter (± 81585) 17342401 ns/iter (± 29279) 1.00
css/parser/tailwind_3_1_1 3327548 ns/iter (± 4190) 3332227 ns/iter (± 7720) 1.00
es/codegen/colors 326712 ns/iter (± 184276) 326578 ns/iter (± 184453) 1.00
es/codegen/large 1184181 ns/iter (± 609803) 1205401 ns/iter (± 615378) 0.98
es/codegen/with-parser/colors 48694 ns/iter (± 292) 48861 ns/iter (± 290) 1.00
es/codegen/with-parser/large 522841 ns/iter (± 1186) 524311 ns/iter (± 1998) 1.00
es/minify/libraries/antd 1391274684 ns/iter (± 23124893) 1315624438 ns/iter (± 17545679) 1.06
es/minify/libraries/d3 248549874 ns/iter (± 3104235) 254895546 ns/iter (± 2914007) 0.98
es/minify/libraries/echarts 1034885474 ns/iter (± 12883524) 1035849702 ns/iter (± 11613959) 1.00
es/minify/libraries/jquery 77809187 ns/iter (± 373172) 78548713 ns/iter (± 798275) 0.99
es/minify/libraries/lodash 93517228 ns/iter (± 972812) 93150768 ns/iter (± 700531) 1.00
es/minify/libraries/moment 45228954 ns/iter (± 203861) 45963763 ns/iter (± 357129) 0.98
es/minify/libraries/react 16859941 ns/iter (± 140905) 17111893 ns/iter (± 110229) 0.99
es/minify/libraries/terser 202426959 ns/iter (± 1489203) 215922193 ns/iter (± 3477581) 0.94
es/minify/libraries/three 349629295 ns/iter (± 4723469) 366776665 ns/iter (± 6757027) 0.95
es/minify/libraries/typescript 2592766022 ns/iter (± 14298503) 2518855769 ns/iter (± 15242938) 1.03
es/minify/libraries/victory 540031827 ns/iter (± 7416168) 552288782 ns/iter (± 11295985) 0.98
es/minify/libraries/vue 115357473 ns/iter (± 1506713) 114661835 ns/iter (± 1336912) 1.01
es/visitor/compare/clone 2306639 ns/iter (± 14573) 2324481 ns/iter (± 12401) 0.99
es/visitor/compare/visit_mut_span 2667890 ns/iter (± 6417) 2689133 ns/iter (± 3551) 0.99
es/visitor/compare/visit_mut_span_panic 2710467 ns/iter (± 5941) 2735480 ns/iter (± 4158) 0.99
es/visitor/compare/fold_span 3771530 ns/iter (± 13408) 3781086 ns/iter (± 10693) 1.00
es/visitor/compare/fold_span_panic 3938496 ns/iter (± 6738) 3970294 ns/iter (± 10184) 0.99
es/lexer/colors 15749 ns/iter (± 140) 15676 ns/iter (± 128) 1.00
es/lexer/angular 7645240 ns/iter (± 17445) 7661791 ns/iter (± 4619) 1.00
es/lexer/backbone 988127 ns/iter (± 1833) 993790 ns/iter (± 1180) 0.99
es/lexer/jquery 5527311 ns/iter (± 12430) 5537242 ns/iter (± 8915) 1.00
es/lexer/jquery mobile 8528911 ns/iter (± 18804) 8554093 ns/iter (± 14445) 1.00
es/lexer/mootools 4364160 ns/iter (± 8806) 4396985 ns/iter (± 1943) 0.99
es/lexer/underscore 830687 ns/iter (± 1540) 834558 ns/iter (± 365) 1.00
es/lexer/three 25866896 ns/iter (± 49192) 25974104 ns/iter (± 38601) 1.00
es/lexer/yui 4696201 ns/iter (± 11813) 4706686 ns/iter (± 9966) 1.00
es/parser/colors 30256 ns/iter (± 453) 29558 ns/iter (± 81) 1.02
es/parser/angular 15192374 ns/iter (± 85241) 15174420 ns/iter (± 133332) 1.00
es/parser/backbone 2239005 ns/iter (± 20431) 2232975 ns/iter (± 12435) 1.00
es/parser/jquery 12014093 ns/iter (± 92670) 12071106 ns/iter (± 150240) 1.00
es/parser/jquery mobile 18718866 ns/iter (± 206388) 18957138 ns/iter (± 190878) 0.99
es/parser/mootools 9213767 ns/iter (± 26765) 9192366 ns/iter (± 53431) 1.00
es/parser/underscore 1886226 ns/iter (± 11220) 1887307 ns/iter (± 11078) 1.00
es/parser/three 53609364 ns/iter (± 525015) 56597562 ns/iter (± 257686) 0.95
es/parser/yui 9227761 ns/iter (± 63626) 9332200 ns/iter (± 62646) 0.99
es/preset-env/usage/builtin_type 143431 ns/iter (± 34703) 141826 ns/iter (± 33721) 1.01
es/preset-env/usage/property 21244 ns/iter (± 72) 21198 ns/iter (± 80) 1.00
es/resolver/typescript 112182143 ns/iter (± 2604877) 107200881 ns/iter (± 2298212) 1.05
es/fixer/typescript 82209747 ns/iter (± 855153) 79280041 ns/iter (± 921142) 1.04
es/hygiene/typescript 182577218 ns/iter (± 2110333) 162956249 ns/iter (± 1079585) 1.12
es/resolver_with_hygiene/typescript 329213476 ns/iter (± 3217917) 308613118 ns/iter (± 1820293) 1.07
es/visitor/base-perf/module_clone 79202 ns/iter (± 1376) 78604 ns/iter (± 1261) 1.01
es/visitor/base-perf/fold_empty 89062 ns/iter (± 1117) 88474 ns/iter (± 1074) 1.01
es/visitor/base-perf/fold_noop_impl_all 90410 ns/iter (± 1084) 89061 ns/iter (± 1352) 1.02
es/visitor/base-perf/fold_noop_impl_vec 90584 ns/iter (± 2027) 91336 ns/iter (± 1156) 0.99
es/visitor/base-perf/boxing_boxed_clone 58 ns/iter (± 0) 56 ns/iter (± 0) 1.04
es/visitor/base-perf/boxing_unboxed_clone 54 ns/iter (± 0) 53 ns/iter (± 0) 1.02
es/visitor/base-perf/boxing_boxed 101 ns/iter (± 0) 101 ns/iter (± 0) 1
es/visitor/base-perf/boxing_unboxed 97 ns/iter (± 0) 98 ns/iter (± 0) 0.99
es/visitor/base-perf/visit_contains_this 3438 ns/iter (± 81) 3426 ns/iter (± 51) 1.00
es/base/parallel/resolver/typescript 5439833875 ns/iter (± 512359328) 5945099967 ns/iter (± 496486967) 0.92
es/base/parallel/hygiene/typescript 2129271055 ns/iter (± 20510415) 1989446219 ns/iter (± 33946506) 1.07
misc/visitors/time-complexity/time 5 99 ns/iter (± 0) 99 ns/iter (± 0) 1
misc/visitors/time-complexity/time 10 345 ns/iter (± 2) 340 ns/iter (± 0) 1.01
misc/visitors/time-complexity/time 15 666 ns/iter (± 1) 668 ns/iter (± 0) 1.00
misc/visitors/time-complexity/time 20 1253 ns/iter (± 6) 1255 ns/iter (± 10) 1.00
misc/visitors/time-complexity/time 40 6726 ns/iter (± 9) 6741 ns/iter (± 38) 1.00
misc/visitors/time-complexity/time 60 17221 ns/iter (± 55) 17342 ns/iter (± 40) 0.99
es/full-target/es2016 249165 ns/iter (± 560) 250538 ns/iter (± 255) 0.99
es/full-target/es2017 241165 ns/iter (± 647) 243427 ns/iter (± 344) 0.99
es/full-target/es2018 230386 ns/iter (± 518) 232132 ns/iter (± 560) 0.99
es2020_nullish_coalescing 90781 ns/iter (± 184) 90871 ns/iter (± 437) 1.00
es2020_optional_chaining 123284 ns/iter (± 480) 123305 ns/iter (± 548) 1.00
es2022_class_properties 146367 ns/iter (± 425) 147304 ns/iter (± 335) 0.99
es2018_object_rest_spread 94408 ns/iter (± 207) 94797 ns/iter (± 119) 1.00
es2019_optional_catch_binding 84243 ns/iter (± 149) 83919 ns/iter (± 200) 1.00
es2017_async_to_generator 84621 ns/iter (± 294) 84798 ns/iter (± 321) 1.00
es2016_exponentiation 88644 ns/iter (± 214) 88852 ns/iter (± 346) 1.00
es2015_arrow 92830 ns/iter (± 256) 92667 ns/iter (± 2409) 1.00
es2015_block_scoped_fn 90275 ns/iter (± 229) 90580 ns/iter (± 183) 1.00
es2015_block_scoping 168750 ns/iter (± 307) 168664 ns/iter (± 275) 1.00

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

Please sign in to comment.