Skip to content

Commit

Permalink
fix(es/typescript): Fix stack overflow (#6250)
Browse files Browse the repository at this point in the history
  • Loading branch information
suxin2017 committed Oct 26, 2022
1 parent dcd024f commit 28ec6e8
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 6 deletions.
6 changes: 0 additions & 6 deletions crates/swc_ecma_transforms_typescript/src/strip.rs
Expand Up @@ -594,12 +594,6 @@ where
if let Some(Some(v)) = values.get(&id.sym) {
return Ok(v.clone());
}
//
for m in e.members.iter() {
if &id.sym == m.id.as_ref() {
return compute(e, span, values, None, m.init.as_deref());
}
}
return Err(());
}
Expr::Unary(ref expr) => {
Expand Down
13 changes: 13 additions & 0 deletions crates/swc_ecma_transforms_typescript/tests/strip.rs
Expand Up @@ -4655,3 +4655,16 @@ test_with_config!(
}
"
);

test!(
::swc_ecma_parser::Syntax::Typescript(Default::default()),
|_| tr(),
issue_6219,
"enum A{
a=a,
}",
r#"var A;
(function(A) {
A[A["a"] = a] = "a";
})(A || (A = {}))"#
);

1 comment on commit 28ec6e8

@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: 28ec6e8 Previous: a0e4684 Ratio
es/full/bugs-1 392895 ns/iter (± 68786) 423171 ns/iter (± 40365) 0.93
es/full/minify/libraries/antd 1922527316 ns/iter (± 88131317) 2159277611 ns/iter (± 33363518) 0.89
es/full/minify/libraries/d3 413796513 ns/iter (± 31849642) 439239820 ns/iter (± 23784604) 0.94
es/full/minify/libraries/echarts 1604132745 ns/iter (± 111321316) 1837609783 ns/iter (± 32915958) 0.87
es/full/minify/libraries/jquery 107612274 ns/iter (± 19700124) 120823898 ns/iter (± 5756160) 0.89
es/full/minify/libraries/lodash 136298698 ns/iter (± 15076527) 138260676 ns/iter (± 1125983) 0.99
es/full/minify/libraries/moment 65069673 ns/iter (± 3412485) 69381540 ns/iter (± 1289694) 0.94
es/full/minify/libraries/react 21206443 ns/iter (± 379143) 23626803 ns/iter (± 1164785) 0.90
es/full/minify/libraries/terser 341626752 ns/iter (± 34889296) 306142641 ns/iter (± 12452350) 1.12
es/full/minify/libraries/three 572219645 ns/iter (± 45832107) 606018658 ns/iter (± 23680751) 0.94
es/full/minify/libraries/typescript 3601103658 ns/iter (± 121170943) 4001201964 ns/iter (± 42105909) 0.90
es/full/minify/libraries/victory 842227806 ns/iter (± 23873241) 889313618 ns/iter (± 23688978) 0.95
es/full/minify/libraries/vue 169782817 ns/iter (± 10676554) 174346312 ns/iter (± 4623275) 0.97
es/full/codegen/es3 33262 ns/iter (± 818) 40451 ns/iter (± 1459) 0.82
es/full/codegen/es5 33375 ns/iter (± 1583) 40088 ns/iter (± 1399) 0.83
es/full/codegen/es2015 33364 ns/iter (± 2796) 38133 ns/iter (± 1501) 0.87
es/full/codegen/es2016 33368 ns/iter (± 30325) 39781 ns/iter (± 1659) 0.84
es/full/codegen/es2017 33081 ns/iter (± 769) 38695 ns/iter (± 2052) 0.85
es/full/codegen/es2018 33179 ns/iter (± 1269) 39416 ns/iter (± 1487) 0.84
es/full/codegen/es2019 33377 ns/iter (± 1876) 40357 ns/iter (± 650) 0.83
es/full/codegen/es2020 33159 ns/iter (± 461) 40372 ns/iter (± 997) 0.82
es/full/all/es3 196677370 ns/iter (± 14300512) 228747794 ns/iter (± 4403640) 0.86
es/full/all/es5 185033401 ns/iter (± 10006873) 215166200 ns/iter (± 9813116) 0.86
es/full/all/es2015 148883425 ns/iter (± 7283797) 173900740 ns/iter (± 5044383) 0.86
es/full/all/es2016 149315717 ns/iter (± 7324775) 174255811 ns/iter (± 3834220) 0.86
es/full/all/es2017 147362526 ns/iter (± 6851235) 173362323 ns/iter (± 4217673) 0.85
es/full/all/es2018 146226310 ns/iter (± 7411693) 171855658 ns/iter (± 3858775) 0.85
es/full/all/es2019 146119272 ns/iter (± 6986210) 171257898 ns/iter (± 3843774) 0.85
es/full/all/es2020 140461414 ns/iter (± 9738089) 165515258 ns/iter (± 9177759) 0.85
es/full/parser 724239 ns/iter (± 21811) 872459 ns/iter (± 20144) 0.83
es/full/base/fixer 26055 ns/iter (± 1831) 31285 ns/iter (± 736) 0.83
es/full/base/resolver_and_hygiene 91677 ns/iter (± 9216) 113609 ns/iter (± 4000) 0.81
serialization of ast node 214 ns/iter (± 23) 260 ns/iter (± 7) 0.82
serialization of serde 218 ns/iter (± 13) 275 ns/iter (± 4) 0.79

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

Please sign in to comment.