Skip to content

Commit

Permalink
test(es/minifier): Add a test for ?? operator (#6282)
Browse files Browse the repository at this point in the history
**Related issue:**

 - vercel/next.js#41992.
  • Loading branch information
kdy1 committed Oct 28, 2022
1 parent fdeb7bc commit 0376da7
Show file tree
Hide file tree
Showing 5 changed files with 17 additions and 1 deletion.
2 changes: 1 addition & 1 deletion crates/swc_ecma_minifier/src/compress/optimize/ops.rs
Expand Up @@ -89,7 +89,7 @@ where
|| (n.left.is_str() && right.right.is_str())
{
self.changed = true;
report_change!("Remove extra paren in binray expression");
report_change!("Remove extra paren in binary expression");
let left = n.left.take();
let BinExpr {
op,
Expand Down
2 changes: 2 additions & 0 deletions crates/swc_ecma_minifier/src/option/terser.rs
Expand Up @@ -433,6 +433,8 @@ impl From<TerserEcmaVersion> for EsVersion {
2018 => EsVersion::Es2018,
2019 => EsVersion::Es2019,
2020 => EsVersion::Es2020,
2021 => EsVersion::Es2021,
2022 => EsVersion::Es2022,
_ => {
panic!("`{}` is not a valid ecmascript version", v)
}
Expand Down
5 changes: 5 additions & 0 deletions crates/swc_ecma_minifier/tests/fixture/next/41992/1/input.js
@@ -0,0 +1,5 @@
export const
N = (0, p.default)(e = (0, ft.default)((0, p.default)(r).call(r, ((e, t) => {
const r = t.get("in");
return e[r] ?? (e[r] = []), e[r].push(t), e
}), {}))).call(e, ((e, t) => (0, h.default)(e).call(e, t)), []);
4 changes: 4 additions & 0 deletions crates/swc_ecma_minifier/tests/fixture/next/41992/1/output.js
@@ -0,0 +1,4 @@
export const N = (0, p.default)(e = (0, ft.default)((0, p.default)(r).call(r, (e1, t)=>{
const r1 = t.get("in");
return e1[r1] ?? (e1[r1] = []), e1[r1].push(t), e1;
}, {}))).call(e, (e1, t)=>(0, h.default)(e1).call(e1, t), []);
5 changes: 5 additions & 0 deletions crates/swc_ecma_minifier/tests/fixture/next/41992/config.json
@@ -0,0 +1,5 @@
{
"defaults": false,
"toplevel": true,
"ecma": 2022
}

1 comment on commit 0376da7

@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: 0376da7 Previous: 2813acc Ratio
es/full/bugs-1 375490 ns/iter (± 33572) 352364 ns/iter (± 32659) 1.07
es/full/minify/libraries/antd 1989444821 ns/iter (± 108177648) 1893909427 ns/iter (± 27658709) 1.05
es/full/minify/libraries/d3 426720872 ns/iter (± 16164038) 430451156 ns/iter (± 28191819) 0.99
es/full/minify/libraries/echarts 1835654997 ns/iter (± 251193198) 1591439748 ns/iter (± 57383003) 1.15
es/full/minify/libraries/jquery 114033253 ns/iter (± 17304024) 110710431 ns/iter (± 8204467) 1.03
es/full/minify/libraries/lodash 125193868 ns/iter (± 29535757) 126074001 ns/iter (± 5717671) 0.99
es/full/minify/libraries/moment 68482815 ns/iter (± 9789246) 62135767 ns/iter (± 2952108) 1.10
es/full/minify/libraries/react 21124710 ns/iter (± 4148212) 20406332 ns/iter (± 419816) 1.04
es/full/minify/libraries/terser 369794963 ns/iter (± 51121524) 329056037 ns/iter (± 10041735) 1.12
es/full/minify/libraries/three 674775646 ns/iter (± 110437041) 565970118 ns/iter (± 26010343) 1.19
es/full/minify/libraries/typescript 4434437221 ns/iter (± 1191856652) 3575160525 ns/iter (± 106495666) 1.24
es/full/minify/libraries/victory 995783465 ns/iter (± 99987727) 836935034 ns/iter (± 11391541) 1.19
es/full/minify/libraries/vue 210060577 ns/iter (± 12394326) 164826324 ns/iter (± 5555287) 1.27
es/full/codegen/es3 40660 ns/iter (± 6051) 34129 ns/iter (± 4919) 1.19
es/full/codegen/es5 43049 ns/iter (± 7382) 35612 ns/iter (± 3105) 1.21
es/full/codegen/es2015 46788 ns/iter (± 7279) 36287 ns/iter (± 1687) 1.29
es/full/codegen/es2016 42079 ns/iter (± 6872) 36356 ns/iter (± 2635) 1.16
es/full/codegen/es2017 45043 ns/iter (± 7847) 35814 ns/iter (± 2078) 1.26
es/full/codegen/es2018 39600 ns/iter (± 8035) 36764 ns/iter (± 3862) 1.08
es/full/codegen/es2019 40801 ns/iter (± 5802) 37182 ns/iter (± 6582) 1.10
es/full/codegen/es2020 42279 ns/iter (± 7049) 37516 ns/iter (± 8447) 1.13
es/full/all/es3 253417206 ns/iter (± 38615783) 231127284 ns/iter (± 97082897) 1.10
es/full/all/es5 245352716 ns/iter (± 43153142) 221640278 ns/iter (± 92846873) 1.11
es/full/all/es2015 185147796 ns/iter (± 115203301) 176807351 ns/iter (± 81546783) 1.05
es/full/all/es2016 209490296 ns/iter (± 42000210) 184412844 ns/iter (± 73844187) 1.14
es/full/all/es2017 211955454 ns/iter (± 55317427) 179428278 ns/iter (± 61952728) 1.18
es/full/all/es2018 200841622 ns/iter (± 27310943) 164754507 ns/iter (± 61150369) 1.22
es/full/all/es2019 197275826 ns/iter (± 54734301) 170846051 ns/iter (± 34846502) 1.15
es/full/all/es2020 194821511 ns/iter (± 37652085) 162842416 ns/iter (± 34336359) 1.20
es/full/parser 1046825 ns/iter (± 117561) 784009 ns/iter (± 73547) 1.34
es/full/base/fixer 36658 ns/iter (± 6550) 28703 ns/iter (± 1381) 1.28
es/full/base/resolver_and_hygiene 129103 ns/iter (± 36780) 100668 ns/iter (± 77011) 1.28
serialization of ast node 230 ns/iter (± 29) 219 ns/iter (± 10) 1.05
serialization of serde 275 ns/iter (± 50) 225 ns/iter (± 13) 1.22

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

Please sign in to comment.