Skip to content

Commit

Permalink
fix(es/codegen): Emit readonly for TsIndexSignature (#6172)
Browse files Browse the repository at this point in the history
  • Loading branch information
kevinbarabash committed Oct 15, 2022
1 parent 78f2d60 commit 083924c
Show file tree
Hide file tree
Showing 3 changed files with 17 additions and 0 deletions.
5 changes: 5 additions & 0 deletions crates/swc_ecma_codegen/src/typescript.rs
Expand Up @@ -297,6 +297,11 @@ where
fn emit_ts_index_signature(&mut self, n: &TsIndexSignature) -> Result {
self.emit_leading_comments_of_span(n.span(), false)?;

if n.readonly {
keyword!("readonly");
formatting_space!();
}

punct!("[");
self.emit_list(n.span, Some(&n.params), ListFormat::Parameters)?;
punct!("]");
Expand Down
6 changes: 6 additions & 0 deletions crates/swc_ecma_codegen/tests/fixture/issues/6171/input.ts
@@ -0,0 +1,6 @@
type ReadonlyDict = {
readonly [key: string]: string;
};
type Dict = {
[key: string]: string;
};
6 changes: 6 additions & 0 deletions crates/swc_ecma_codegen/tests/fixture/issues/6171/output.ts
@@ -0,0 +1,6 @@
type ReadonlyDict = {
readonly [key: string]: string;
};
type Dict = {
[key: string]: string;
};

1 comment on commit 083924c

@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: 083924c Previous: 099d92c Ratio
es/full/minify/libraries/antd 1790770835 ns/iter (± 15758529) 2118607717 ns/iter (± 54518658) 0.85
es/full/minify/libraries/d3 377965173 ns/iter (± 7018534) 407840144 ns/iter (± 13509473) 0.93
es/full/minify/libraries/echarts 1491904052 ns/iter (± 18897846) 1728100301 ns/iter (± 37900851) 0.86
es/full/minify/libraries/jquery 96999478 ns/iter (± 2302479) 117035920 ns/iter (± 3522680) 0.83
es/full/minify/libraries/lodash 109870488 ns/iter (± 3407399) 127753371 ns/iter (± 2007281) 0.86
es/full/minify/libraries/moment 56398296 ns/iter (± 1209064) 67880313 ns/iter (± 2182998) 0.83
es/full/minify/libraries/react 19221308 ns/iter (± 115850) 23446562 ns/iter (± 866779) 0.82
es/full/minify/libraries/terser 295334183 ns/iter (± 4411147) 304942284 ns/iter (± 5384369) 0.97
es/full/minify/libraries/three 544078083 ns/iter (± 13934891) 533889325 ns/iter (± 26957668) 1.02
es/full/minify/libraries/typescript 3310862525 ns/iter (± 23611752) 3830995754 ns/iter (± 53418443) 0.86
es/full/minify/libraries/victory 789108258 ns/iter (± 12448924) 781668790 ns/iter (± 26113599) 1.01
es/full/minify/libraries/vue 139771623 ns/iter (± 3068755) 161424168 ns/iter (± 2294560) 0.87
es/full/codegen/es3 33313 ns/iter (± 477) 37142 ns/iter (± 1899) 0.90
es/full/codegen/es5 33287 ns/iter (± 897) 36646 ns/iter (± 2241) 0.91
es/full/codegen/es2015 33371 ns/iter (± 991) 36282 ns/iter (± 1545) 0.92
es/full/codegen/es2016 33343 ns/iter (± 1266) 36125 ns/iter (± 1369) 0.92
es/full/codegen/es2017 33368 ns/iter (± 540) 36266 ns/iter (± 993) 0.92
es/full/codegen/es2018 33334 ns/iter (± 391) 36687 ns/iter (± 2069) 0.91
es/full/codegen/es2019 33313 ns/iter (± 494) 37128 ns/iter (± 1891) 0.90
es/full/codegen/es2020 33348 ns/iter (± 790) 36656 ns/iter (± 1325) 0.91
es/full/all/es3 187130219 ns/iter (± 6279505) 218476273 ns/iter (± 5549209) 0.86
es/full/all/es5 177214513 ns/iter (± 5472205) 205693416 ns/iter (± 4928473) 0.86
es/full/all/es2015 142400567 ns/iter (± 3855748) 165844805 ns/iter (± 4333516) 0.86
es/full/all/es2016 142229148 ns/iter (± 4434544) 165799231 ns/iter (± 5263442) 0.86
es/full/all/es2017 140613525 ns/iter (± 3614730) 165213046 ns/iter (± 3895963) 0.85
es/full/all/es2018 139373130 ns/iter (± 3499268) 164012491 ns/iter (± 5904392) 0.85
es/full/all/es2019 138686407 ns/iter (± 4745211) 162173036 ns/iter (± 5118559) 0.86
es/full/all/es2020 134024385 ns/iter (± 3484483) 157454071 ns/iter (± 4052258) 0.85
es/full/parser 713356 ns/iter (± 17055) 787631 ns/iter (± 35006) 0.91
es/full/base/fixer 26178 ns/iter (± 1063) 29338 ns/iter (± 3999) 0.89
es/full/base/resolver_and_hygiene 92578 ns/iter (± 4175) 105277 ns/iter (± 3675) 0.88
serialization of ast node 208 ns/iter (± 2) 232 ns/iter (± 8) 0.90
serialization of serde 209 ns/iter (± 2) 233 ns/iter (± 23) 0.90

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

Please sign in to comment.