Skip to content

Commit

Permalink
fix(es/fixer): Handle more expressions in postfix operator (#6359)
Browse files Browse the repository at this point in the history
  • Loading branch information
magic-akari committed Nov 5, 2022
1 parent 5e18ebf commit 8123bf0
Show file tree
Hide file tree
Showing 4 changed files with 57 additions and 1 deletion.
5 changes: 5 additions & 0 deletions crates/swc/tests/fixture/issues-6xxx/6353/input/.swcrc
@@ -0,0 +1,5 @@
{
"jsc": {
"target": "es2016"
}
}
8 changes: 8 additions & 0 deletions crates/swc/tests/fixture/issues-6xxx/6353/input/input.js
@@ -0,0 +1,8 @@
(async x => 0).x++;
(async x => 0).x--;

++(async x => 0).x;
--(async x => 0).x;


(async x => 0)`y`;
41 changes: 41 additions & 0 deletions crates/swc/tests/fixture/issues-6xxx/6353/output/input.js
@@ -0,0 +1,41 @@
import _async_to_generator from "@swc/helpers/src/_async_to_generator.mjs";
(function() {
var _ref = _async_to_generator(function*(x) {
return 0;
});
return function(x) {
return _ref.apply(this, arguments);
};
})().x++;
(function() {
var _ref = _async_to_generator(function*(x) {
return 0;
});
return function(x) {
return _ref.apply(this, arguments);
};
})().x--;
++function() {
var _ref = _async_to_generator(function*(x) {
return 0;
});
return function(x) {
return _ref.apply(this, arguments);
};
}().x;
--function() {
var _ref = _async_to_generator(function*(x) {
return 0;
});
return function(x) {
return _ref.apply(this, arguments);
};
}().x;
(function() {
var _ref = _async_to_generator(function*(x) {
return 0;
});
return function(x) {
return _ref.apply(this, arguments);
};
})()`y`;
4 changes: 3 additions & 1 deletion crates/swc_ecma_transforms_base/src/fixer.rs
Expand Up @@ -430,7 +430,9 @@ impl VisitMut for Fixer<'_> {
| Expr::Bin(_)
| Expr::Assign(_)
| Expr::Seq(_)
| Expr::Cond(_) => (),
| Expr::Cond(_)
| Expr::TaggedTpl(_)
| Expr::Update(UpdateExpr { prefix: false, .. }) => {}
_ => self.ctx = Context::FreeExpr,
}
}
Expand Down

1 comment on commit 8123bf0

@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: 8123bf0 Previous: e0967ef Ratio
es/full/bugs-1 343343 ns/iter (± 27668) 351364 ns/iter (± 20908) 0.98
es/full/minify/libraries/antd 1862921911 ns/iter (± 67546291) 1829321242 ns/iter (± 29125849) 1.02
es/full/minify/libraries/d3 456943209 ns/iter (± 77559708) 405237948 ns/iter (± 18282831) 1.13
es/full/minify/libraries/echarts 1681460292 ns/iter (± 83058984) 1550598867 ns/iter (± 41174619) 1.08
es/full/minify/libraries/jquery 101039469 ns/iter (± 2202933) 100373220 ns/iter (± 1433529) 1.01
es/full/minify/libraries/lodash 125437813 ns/iter (± 7561945) 116993111 ns/iter (± 1015937) 1.07
es/full/minify/libraries/moment 60542407 ns/iter (± 4701614) 59687642 ns/iter (± 1319819) 1.01
es/full/minify/libraries/react 20558806 ns/iter (± 1229623) 21055209 ns/iter (± 857536) 0.98
es/full/minify/libraries/terser 320858886 ns/iter (± 30362068) 318863367 ns/iter (± 10884109) 1.01
es/full/minify/libraries/three 561827252 ns/iter (± 21378446) 564434193 ns/iter (± 16643987) 1.00
es/full/minify/libraries/typescript 3423518124 ns/iter (± 69640837) 3361574147 ns/iter (± 47643530) 1.02
es/full/minify/libraries/victory 833597110 ns/iter (± 37338157) 829108107 ns/iter (± 20403702) 1.01
es/full/minify/libraries/vue 162776567 ns/iter (± 25061041) 158391347 ns/iter (± 8731634) 1.03
es/full/codegen/es3 33865 ns/iter (± 1734) 33853 ns/iter (± 937) 1.00
es/full/codegen/es5 33984 ns/iter (± 975) 33725 ns/iter (± 803) 1.01
es/full/codegen/es2015 33960 ns/iter (± 2196) 33762 ns/iter (± 1224) 1.01
es/full/codegen/es2016 33730 ns/iter (± 1539) 33794 ns/iter (± 712) 1.00
es/full/codegen/es2017 33944 ns/iter (± 1208) 33947 ns/iter (± 600) 1.00
es/full/codegen/es2018 33843 ns/iter (± 1227) 33781 ns/iter (± 2307) 1.00
es/full/codegen/es2019 33857 ns/iter (± 2484) 33664 ns/iter (± 2014) 1.01
es/full/codegen/es2020 34021 ns/iter (± 1967) 33659 ns/iter (± 2391) 1.01
es/full/all/es3 195120515 ns/iter (± 11282219) 193581954 ns/iter (± 10371129) 1.01
es/full/all/es5 189545443 ns/iter (± 12038590) 193902669 ns/iter (± 10936114) 0.98
es/full/all/es2015 148921470 ns/iter (± 7644693) 149939834 ns/iter (± 7585277) 0.99
es/full/all/es2016 148399464 ns/iter (± 15501230) 147618663 ns/iter (± 6901716) 1.01
es/full/all/es2017 154987026 ns/iter (± 15690787) 147070043 ns/iter (± 12120155) 1.05
es/full/all/es2018 156704302 ns/iter (± 12450944) 145198637 ns/iter (± 11847557) 1.08
es/full/all/es2019 153811086 ns/iter (± 14230746) 144542908 ns/iter (± 9985761) 1.06
es/full/all/es2020 159079289 ns/iter (± 16477066) 140674698 ns/iter (± 9246783) 1.13
es/full/parser 752161 ns/iter (± 45952) 708769 ns/iter (± 35559) 1.06
es/full/base/fixer 27213 ns/iter (± 2089) 26323 ns/iter (± 1399) 1.03
es/full/base/resolver_and_hygiene 93181 ns/iter (± 16766) 91694 ns/iter (± 1767) 1.02
serialization of ast node 214 ns/iter (± 2) 216 ns/iter (± 9) 0.99
serialization of serde 216 ns/iter (± 53) 229 ns/iter (± 1) 0.94

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

Please sign in to comment.