Skip to content

Commit

Permalink
fix(es/codegen): Allow non-ascii character in more places (#4394)
Browse files Browse the repository at this point in the history
  • Loading branch information
kdy1 committed Apr 21, 2022
1 parent 7d23492 commit 139ac24
Show file tree
Hide file tree
Showing 6 changed files with 52 additions and 1 deletion.
12 changes: 12 additions & 0 deletions crates/swc/tests/vercel/loader-only/next-36251/1/input/index.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
type ü = {
name: string;
value: string;
};

export const SomeComponent = ({ name, value }: ü) => {
return (
<div>
{name} {value}
</div>
);
};
11 changes: 11 additions & 0 deletions crates/swc/tests/vercel/loader-only/next-36251/1/output/index.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
import { jsxs as _jsxs } from "react/jsx-runtime";
export var SomeComponent = function(param) {
var name = param.name, value = param.value;
return /*#__PURE__*/ _jsxs("div", {
children: [
name,
" ",
value
]
});
};
5 changes: 4 additions & 1 deletion crates/swc_ecma_codegen/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2225,7 +2225,10 @@ where
if snippet.len() < 3 {
false
} else {
snippet[..snippet.len() - 1].trim().ends_with(',')
let last_char = snippet.chars().last().unwrap();
snippet[..snippet.len() - last_char.len_utf8()]
.trim()
.ends_with(',')
}
}
_ => false,
Expand Down
2 changes: 2 additions & 0 deletions crates/swc_ecma_codegen/tests/fixture.rs
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ fn run(input: &Path, minify: bool) {
&fm,
Syntax::Typescript(TsConfig {
decorators: true,
tsx: true,
..Default::default()
}),
EsVersion::latest(),
Expand Down Expand Up @@ -67,6 +68,7 @@ fn run(input: &Path, minify: bool) {
}

#[testing::fixture("tests/fixture/**/input.ts")]
#[testing::fixture("tests/fixture/**/input.tsx")]
fn ts(input: PathBuf) {
run(&input, false);
}
Expand Down
12 changes: 12 additions & 0 deletions crates/swc_ecma_codegen/tests/fixture/next-36251/input.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
type ü = {
name: string;
value: string;
};

export const SomeComponent = ({ name, value }: ü) => {
return (
<div>
{name} {value}
</div>
);
};
11 changes: 11 additions & 0 deletions crates/swc_ecma_codegen/tests/fixture/next-36251/output.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
type ü = {
name: string;
value: string;
};
export const SomeComponent = ({ name , value }: ü)=>{
return (<div >

{name} {value}

</div>);
};

1 comment on commit 139ac24

@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: 139ac24 Previous: 8cf3ddd Ratio
es/full/minify/libraries/antd 2520195677 ns/iter (± 78109140) 2101456721 ns/iter (± 45914768) 1.20
es/full/minify/libraries/d3 631721997 ns/iter (± 17835732) 503331204 ns/iter (± 17906647) 1.26
es/full/minify/libraries/echarts 3130718192 ns/iter (± 36845154) 2415336294 ns/iter (± 14855726) 1.30
es/full/minify/libraries/jquery 139049399 ns/iter (± 5156184) 116626046 ns/iter (± 3556876) 1.19
es/full/minify/libraries/lodash 162019545 ns/iter (± 2557843) 133021559 ns/iter (± 1324072) 1.22
es/full/minify/libraries/moment 79161029 ns/iter (± 1326952) 65210849 ns/iter (± 1323088) 1.21
es/full/minify/libraries/react 25318298 ns/iter (± 630105) 20248929 ns/iter (± 264257) 1.25
es/full/minify/libraries/terser 875844153 ns/iter (± 14987118) 655481743 ns/iter (± 11376975) 1.34
es/full/minify/libraries/three 806264972 ns/iter (± 29491637) 738054238 ns/iter (± 13752406) 1.09
es/full/minify/libraries/typescript 5651493079 ns/iter (± 84618057) 4843747506 ns/iter (± 33503671) 1.17
es/full/minify/libraries/victory 1093503303 ns/iter (± 45484143) 973929568 ns/iter (± 8758643) 1.12
es/full/minify/libraries/vue 185519812 ns/iter (± 8356032) 159109502 ns/iter (± 3586263) 1.17
es/full/codegen/es3 39322 ns/iter (± 1623) 29438 ns/iter (± 279) 1.34
es/full/codegen/es5 38234 ns/iter (± 2358) 29319 ns/iter (± 161) 1.30
es/full/codegen/es2015 38434 ns/iter (± 2866) 29327 ns/iter (± 138) 1.31
es/full/codegen/es2016 39425 ns/iter (± 1888) 29346 ns/iter (± 147) 1.34
es/full/codegen/es2017 37111 ns/iter (± 2087) 29312 ns/iter (± 133) 1.27
es/full/codegen/es2018 38279 ns/iter (± 1882) 29335 ns/iter (± 143) 1.30
es/full/codegen/es2019 37832 ns/iter (± 6125) 29340 ns/iter (± 145) 1.29
es/full/codegen/es2020 38612 ns/iter (± 1977) 29310 ns/iter (± 130) 1.32
es/full/all/es3 234024745 ns/iter (± 9009302) 188272290 ns/iter (± 2524753) 1.24
es/full/all/es5 212297164 ns/iter (± 10613308) 178614677 ns/iter (± 2418201) 1.19
es/full/all/es2015 175287308 ns/iter (± 7008313) 140989979 ns/iter (± 1919128) 1.24
es/full/all/es2016 175400644 ns/iter (± 6638735) 141614804 ns/iter (± 5443285) 1.24
es/full/all/es2017 178387576 ns/iter (± 9422025) 141416782 ns/iter (± 1422868) 1.26
es/full/all/es2018 170600288 ns/iter (± 6374824) 138299550 ns/iter (± 1539359) 1.23
es/full/all/es2019 166830213 ns/iter (± 7362859) 137431140 ns/iter (± 2005362) 1.21
es/full/all/es2020 167051527 ns/iter (± 7620182) 126461718 ns/iter (± 2003544) 1.32
es/full/parser 786170 ns/iter (± 31017) 587761 ns/iter (± 24923) 1.34
es/full/base/fixer 36847 ns/iter (± 3175) 23565 ns/iter (± 196) 1.56
es/full/base/resolver_and_hygiene 176930 ns/iter (± 9204) 124975 ns/iter (± 1799) 1.42
serialization of ast node 177 ns/iter (± 6) 137 ns/iter (± 0) 1.29
serialization of serde 178 ns/iter (± 7) 138 ns/iter (± 0) 1.29
es/codegen/colors 72628 ns/iter (± 6058) 63742 ns/iter (± 738) 1.14
es/codegen/large 389894 ns/iter (± 103379) 355662 ns/iter (± 3366) 1.10
es/codegen/with-parser/colors 80278 ns/iter (± 4473) 48221 ns/iter (± 655) 1.66
es/codegen/with-parser/large 820205 ns/iter (± 40434) 588618 ns/iter (± 10824) 1.39
es/minify/libraries/antd 2460670603 ns/iter (± 67315269) 2040917245 ns/iter (± 42858614) 1.21
es/minify/libraries/d3 628834595 ns/iter (± 24702806) 571815033 ns/iter (± 13038494) 1.10
es/minify/libraries/echarts 3054773065 ns/iter (± 40064968) 2364398454 ns/iter (± 17841409) 1.29
es/minify/libraries/jquery 139454153 ns/iter (± 1848130) 101578264 ns/iter (± 1686254) 1.37
es/minify/libraries/lodash 155411233 ns/iter (± 5413302) 126009295 ns/iter (± 3925031) 1.23
es/minify/libraries/moment 76081461 ns/iter (± 2564396) 61917621 ns/iter (± 1015689) 1.23
es/minify/libraries/react 24748385 ns/iter (± 775004) 19710552 ns/iter (± 813489) 1.26
es/minify/libraries/terser 939500042 ns/iter (± 33582949) 619004173 ns/iter (± 17066883) 1.52
es/minify/libraries/three 765442046 ns/iter (± 14126156) 745330645 ns/iter (± 20025885) 1.03
es/minify/libraries/typescript 5370303465 ns/iter (± 89549133) 4722143673 ns/iter (± 63257675) 1.14
es/minify/libraries/victory 1013447801 ns/iter (± 47884420) 976865055 ns/iter (± 15188849) 1.04
es/minify/libraries/vue 183829614 ns/iter (± 7960472) 153950200 ns/iter (± 2423769) 1.19
es/visitor/compare/clone 3200757 ns/iter (± 252106) 2739624 ns/iter (± 138148) 1.17
es/visitor/compare/visit_mut_span 3522317 ns/iter (± 204377) 3184209 ns/iter (± 256272) 1.11
es/visitor/compare/visit_mut_span_panic 3806597 ns/iter (± 402893) 3202267 ns/iter (± 290846) 1.19
es/visitor/compare/fold_span 5440363 ns/iter (± 384684) 4533030 ns/iter (± 251472) 1.20
es/visitor/compare/fold_span_panic 6267716 ns/iter (± 465783) 5002012 ns/iter (± 391938) 1.25
es/lexer/colors 25062 ns/iter (± 1880) 21105 ns/iter (± 114) 1.19
es/lexer/angular 12103015 ns/iter (± 734561) 10029084 ns/iter (± 15090) 1.21
es/lexer/backbone 1637290 ns/iter (± 72350) 1334292 ns/iter (± 10968) 1.23
es/lexer/jquery 9027449 ns/iter (± 368294) 7192412 ns/iter (± 4282) 1.26
es/lexer/jquery mobile 14568140 ns/iter (± 808032) 11652096 ns/iter (± 7001) 1.25
es/lexer/mootools 6655049 ns/iter (± 291325) 5546571 ns/iter (± 30579) 1.20
es/lexer/underscore 1424068 ns/iter (± 77514) 1112717 ns/iter (± 1426) 1.28
es/lexer/three 42201890 ns/iter (± 1266207) 32972405 ns/iter (± 35510) 1.28
es/lexer/yui 7885866 ns/iter (± 447737) 6110785 ns/iter (± 4824) 1.29
es/parser/colors 47363 ns/iter (± 2548) 35323 ns/iter (± 263) 1.34
es/parser/angular 23859862 ns/iter (± 1850719) 20096508 ns/iter (± 479836) 1.19
es/parser/backbone 3394776 ns/iter (± 158928) 2316955 ns/iter (± 20643) 1.47
es/parser/jquery 19382550 ns/iter (± 1041148) 15697497 ns/iter (± 338084) 1.23
es/parser/jquery mobile 30965282 ns/iter (± 2140277) 25453654 ns/iter (± 660454) 1.22
es/parser/mootools 13935707 ns/iter (± 744160) 12118288 ns/iter (± 305453) 1.15
es/parser/underscore 2918762 ns/iter (± 175414) 2232477 ns/iter (± 13198) 1.31
es/parser/three 89188437 ns/iter (± 6306536) 70668798 ns/iter (± 567916) 1.26
es/parser/yui 15228192 ns/iter (± 1046749) 11715476 ns/iter (± 268865) 1.30
es/preset-env/usage/builtin_type 179261 ns/iter (± 19191) 125530 ns/iter (± 4190) 1.43
es/preset-env/usage/property 43689 ns/iter (± 2619) 29420 ns/iter (± 489) 1.49
es/transforms/base/resolver 210521 ns/iter (± 9928) 149172 ns/iter (± 1109) 1.41
es/transforms/base/fixer 184931 ns/iter (± 28218) 128719 ns/iter (± 796) 1.44
es/transforms/base/hygiene 503803 ns/iter (± 56793) 362394 ns/iter (± 1421) 1.39
es/transforms/base/resolver_with_hygiene 577400 ns/iter (± 35735) 434029 ns/iter (± 3041) 1.33
es/visitor/base-perf/module_clone 139365 ns/iter (± 6848) 95400 ns/iter (± 2338) 1.46
es/visitor/base-perf/fold_empty 159155 ns/iter (± 8957) 107897 ns/iter (± 1890) 1.48
es/visitor/base-perf/fold_noop_impl_all 160152 ns/iter (± 6937) 108216 ns/iter (± 1873) 1.48
es/visitor/base-perf/fold_noop_impl_vec 155039 ns/iter (± 7945) 108134 ns/iter (± 2218) 1.43
es/visitor/base-perf/boxing_boxed_clone 86 ns/iter (± 3) 68 ns/iter (± 0) 1.26
es/visitor/base-perf/boxing_unboxed_clone 136 ns/iter (± 13) 109 ns/iter (± 0) 1.25
es/visitor/base-perf/boxing_boxed 173 ns/iter (± 9) 141 ns/iter (± 0) 1.23
es/visitor/base-perf/boxing_unboxed 209 ns/iter (± 13) 146 ns/iter (± 0) 1.43
es/visitor/base-perf/visit_contains_this 5060 ns/iter (± 390) 3915 ns/iter (± 112) 1.29
misc/visitors/time-complexity/time 5 123 ns/iter (± 9) 98 ns/iter (± 0) 1.26
misc/visitors/time-complexity/time 10 433 ns/iter (± 49) 322 ns/iter (± 0) 1.34
misc/visitors/time-complexity/time 15 820 ns/iter (± 54) 704 ns/iter (± 9) 1.16
misc/visitors/time-complexity/time 20 1455 ns/iter (± 76) 1276 ns/iter (± 1) 1.14
misc/visitors/time-complexity/time 40 5659 ns/iter (± 376) 7194 ns/iter (± 70) 0.79
misc/visitors/time-complexity/time 60 11460 ns/iter (± 437) 16118 ns/iter (± 63) 0.71
es/full-target/es2016 338660 ns/iter (± 20046) 253922 ns/iter (± 1644) 1.33
es/full-target/es2017 327669 ns/iter (± 21495) 210990 ns/iter (± 1415) 1.55
es/full-target/es2018 318121 ns/iter (± 16503) 228078 ns/iter (± 1154) 1.39
es2020_nullish_coalescing 174654 ns/iter (± 8759) 116898 ns/iter (± 1260) 1.49
es2020_optional_chaining 212110 ns/iter (± 19572) 146584 ns/iter (± 1211) 1.45
es2022_class_properties 213776 ns/iter (± 10753) 147549 ns/iter (± 908) 1.45
es2018_object_rest_spread 162027 ns/iter (± 10343) 106948 ns/iter (± 1915) 1.52
es2019_optional_catch_binding 147348 ns/iter (± 10460) 94247 ns/iter (± 1930) 1.56
es2017_async_to_generator 146272 ns/iter (± 8622) 94368 ns/iter (± 1703) 1.55
es2016_exponentiation 170673 ns/iter (± 16229) 115551 ns/iter (± 549) 1.48
es2015_arrow 176096 ns/iter (± 19286) 117358 ns/iter (± 771) 1.50
es2015_block_scoped_fn 171906 ns/iter (± 21779) 117182 ns/iter (± 526) 1.47
es2015_block_scoping 266146 ns/iter (± 24290) 197158 ns/iter (± 1107) 1.35
es2015_classes 243161 ns/iter (± 17538) 166252 ns/iter (± 1369) 1.46
es2015_computed_props 143330 ns/iter (± 28846) 94920 ns/iter (± 1864) 1.51
es2015_destructuring 248374 ns/iter (± 20555) 175552 ns/iter (± 1299) 1.41
es2015_duplicate_keys 146299 ns/iter (± 14770) 98865 ns/iter (± 1787) 1.48
es2015_parameters 185756 ns/iter (± 10910) 124174 ns/iter (± 601) 1.50
es2015_fn_name 153481 ns/iter (± 8651) 98872 ns/iter (± 2152) 1.55
es2015_for_of 168578 ns/iter (± 7065) 101087 ns/iter (± 694) 1.67
es2015_instanceof 153911 ns/iter (± 9029) 93365 ns/iter (± 618) 1.65
es2015_shorthand_property 144633 ns/iter (± 6967) 94841 ns/iter (± 1887) 1.53
es2015_spread 139379 ns/iter (± 10501) 95128 ns/iter (± 1782) 1.47
es2015_sticky_regex 146893 ns/iter (± 9076) 96214 ns/iter (± 1817) 1.53
es2015_typeof_symbol 148002 ns/iter (± 7104) 97055 ns/iter (± 1646) 1.52
es/transform/baseline/base 127545 ns/iter (± 6393) 83710 ns/iter (± 1639) 1.52
es/transform/baseline/common_reserved_word 149314 ns/iter (± 8776) 97231 ns/iter (± 1667) 1.54
es/transform/baseline/common_typescript 290284 ns/iter (± 13943) 210545 ns/iter (± 1070) 1.38
es/target/es3 357558 ns/iter (± 24930) 256815 ns/iter (± 1158) 1.39
es/target/es2015 958670 ns/iter (± 69445) 744904 ns/iter (± 2210) 1.29
es/target/es2016 164745 ns/iter (± 11458) 115971 ns/iter (± 1623) 1.42
es/target/es2017 139544 ns/iter (± 10850) 95458 ns/iter (± 1695) 1.46
es/target/es2018 176208 ns/iter (± 11048) 120137 ns/iter (± 1522) 1.47
es/target/es2020 257818 ns/iter (± 14243) 182950 ns/iter (± 945) 1.41
babelify-only 893770 ns/iter (± 37248) 674956 ns/iter (± 22247) 1.32
parse_and_babelify_angular 83686367 ns/iter (± 3982702) 77546976 ns/iter (± 1399312) 1.08
parse_and_babelify_backbone 9356606 ns/iter (± 751180) 7881785 ns/iter (± 264973) 1.19
parse_and_babelify_jquery 61636437 ns/iter (± 4722767) 51630654 ns/iter (± 688068) 1.19
parse_and_babelify_jquery_mobile 109488595 ns/iter (± 3946985) 90263093 ns/iter (± 1012150) 1.21
parse_and_babelify_mootools 49149897 ns/iter (± 3183864) 40804842 ns/iter (± 994147) 1.20
parse_and_babelify_underscore 7617453 ns/iter (± 438147) 6325892 ns/iter (± 266287) 1.20
parse_and_babelify_yui 50744162 ns/iter (± 3492403) 40166411 ns/iter (± 439839) 1.26

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

Please sign in to comment.