Commit Graph

1075 Commits

Author SHA1 Message Date
Donny/강동윤
ec9a80aae0
feat(es/minifier): Respect options (#6245) 2022-10-25 04:00:16 +00:00
SWC Bot
2f05c3fd32 chore: Publish crates 2022-10-24 03:58:37 +00:00
SWC Bot
c025cd01ce chore: Publish crates 2022-10-23 04:45:44 +00:00
Donny/강동윤
48bb0cc51d
fix(es/minifier): Fix collapse_vars (#6235)
**Related issue:**

 - Closes https://github.com/swc-project/swc/issues/6217
2022-10-23 13:43:10 +09:00
SWC Bot
e2c1fcffd4 chore: Publish crates 2022-10-21 23:50:56 +00:00
SWC Bot
b79997ba02 chore: Publish crates 2022-10-21 09:11:29 +00:00
Donny/강동윤
e9d421bd95
fix(es/minifier): Preserve this in more cases (#6226)
**Related issue (if exists):**

 - Closes https://github.com/swc-project/swc/issues/6175.
 - Closes https://github.com/swc-project/swc/issues/6137.

Co-authored-by: Justin Ridgewell <justin@ridgewell.name>
2022-10-21 09:07:00 +00:00
SWC Bot
bcd5f6f5be chore: Publish crates 2022-10-21 03:21:15 +00:00
Donny/강동윤
780b5de678
fix(es/minifier): Fix detection of direct eval (#6215) 2022-10-21 12:18:10 +09:00
SWC Bot
6b738f2443 chore: Publish crates 2022-10-21 00:36:28 +00:00
Donny/강동윤
ea03ce1a82
refactor(es/minifier): Don't create invalid nodes (#6191)
**Description:**

A sequential expression should have at leat two elements.
2022-10-21 00:33:40 +00:00
Donny/강동윤
725b1185f3
test(es/minifier): Add a test for a fixed issue (#6218)
**Related issue (if exists):**

 - Closes https://github.com/swc-project/swc/issues/6217.
2022-10-20 19:26:27 +00:00
SWC Bot
3f648bdf0f chore: Publish crates 2022-10-20 08:59:26 +00:00
SWC Bot
33470ab5b9 chore: Publish crates 2022-10-20 05:09:47 +00:00
Donny/강동윤
cc848db80e
feat(es/minifier): Mark more expressions as pure (#6204) 2022-10-20 05:06:32 +00:00
SWC Bot
6aaf6a7a87 chore: Publish crates 2022-10-20 02:26:45 +00:00
Donny/강동윤
12443db39a
feat(es/minifier): Merge functions using sequential inliner (#6148) 2022-10-20 02:24:09 +00:00
SWC Bot
0c23592d14 chore: Publish crates 2022-10-20 01:50:04 +00:00
SWC Bot
6008995db1 chore: Publish crates 2022-10-19 04:56:51 +00:00
SWC Bot
b48ec880fd chore: Publish crates 2022-10-19 04:00:51 +00:00
SWC Bot
287c2f2941 chore: Publish crates 2022-10-19 02:18:35 +00:00
Donny/강동윤
842abd4575
fix(es/minifier): Remove wrong rule (#6201)
**Related issue:**

 - https://github.com/vercel/next.js/issues/41527.
2022-10-19 02:14:38 +00:00
SWC Bot
a049ef058b chore: Publish crates 2022-10-18 14:51:39 +00:00
SWC Bot
789ea16fc8 chore: Publish crates 2022-10-18 05:41:47 +00:00
SWC Bot
e30316626f chore: Publish crates 2022-10-18 02:54:12 +00:00
Donny/강동윤
f2e8f98d38
feat(es/minifier): Skip function declarations in sequential inliner (#6147) 2022-10-18 02:51:05 +00:00
SWC Bot
b197a62b5e chore: Publish crates 2022-10-18 02:16:46 +00:00
Donny/강동윤
3f0fcf4fa9
feat(es/minifier): Make sequential inliner self-repeat (#6168) 2022-10-18 02:13:39 +00:00
SWC Bot
fed888f822 chore: Publish crates 2022-10-17 08:33:49 +00:00
SWC Bot
99c55dc93b chore: Publish crates 2022-10-16 15:52:36 +00:00
SWC Bot
b3b8e2192d chore: Publish crates 2022-10-16 00:28:22 +00:00
SWC Bot
c3ba51f48e chore: Publish crates 2022-10-15 23:59:27 +00:00
SWC Bot
78f2d6012c chore: Publish crates 2022-10-15 12:55:40 +00:00
SWC Bot
23e30fd149 chore: Publish crates 2022-10-15 09:14:15 +00:00
Donny/강동윤
aec5cdacc6
fix(es/minifier): Preserve this of tagged template literals (#6165)
**Related issue:**

 - Closes https://github.com/swc-project/swc/issues/6146
2022-10-15 09:11:20 +00:00
SWC Bot
16df44221f chore: Publish crates 2022-10-15 05:50:28 +00:00
Austaras
b40d486253
fix(es/minifier): Consider function body cost while inlining function (#5342) 2022-10-15 05:47:56 +00:00
SWC Bot
608aa94935 chore: Publish crates 2022-10-15 04:39:37 +00:00
Donny/강동윤
6d0ca05cb5
fix(es/minifier): Fix ordering issue of analyzer (#6150)
**Description:**

This is the groundwork for a parallel analyzer. This PR fixes the ordering issue of the analyzer so that the analyzer works identically regardless of the visit order. This patch contains some improvements because previously, we mixed `.and_modify()` and `.or_default()`.
2022-10-15 04:37:11 +00:00
SWC Bot
a50b5aeeb1 chore: Publish crates 2022-10-14 10:42:11 +00:00
SWC Bot
ef5ed9b4a9 chore: Publish crates 2022-10-14 03:00:49 +00:00
Donny/강동윤
d334c6e783
feat(es/minifier): Ignore return value if a param of IIFE is not used (#6115) 2022-10-14 02:58:00 +00:00
SWC Bot
3ff55caa38 chore: Publish crates 2022-10-14 00:35:25 +00:00
Donny/강동윤
3d271e82a2
fix(es/minifier): Preserve return values of recursive IIFE (#6142)
**Description:**

This PR fixes the logic for dropping return values of IIFE.

**Related issue:**

 - Closes https://github.com/swc-project/swc/issues/6141.
2022-10-14 09:32:56 +09:00
SWC Bot
31023f8e7e chore: Publish crates 2022-10-13 23:38:26 +00:00
Donny/강동윤
ec0d6d5a0d
feat(es/minifier): Improve trivial rules (#6136) 2022-10-13 23:34:30 +00:00
SWC Bot
0eb91d67a7 chore: Publish crates 2022-10-13 23:03:28 +00:00
Donny/강동윤
3a29bfee9b
feat(es/minifier): Change default pass limit to 3 (#6138) 2022-10-14 08:00:32 +09:00
SWC Bot
1affcfe8e8 chore: Publish crates 2022-10-13 06:12:56 +00:00
SWC Bot
769e5a2885 chore: Publish crates 2022-10-13 03:48:18 +00:00
Donny/강동윤
c37839fc62
feat(es/minifier): Swap more binary expressions (#6134) 2022-10-13 03:45:05 +00:00
SWC Bot
56da9981bb chore: Publish crates 2022-10-12 10:06:01 +00:00
SWC Bot
7e1972df7a chore: Publish crates 2022-10-12 05:34:45 +00:00
Donny/강동윤
5875298377
feat(es/minifier): Merge assignments using sequential inliner (#6103) 2022-10-12 05:31:40 +00:00
SWC Bot
7c9cb80a52 chore: Publish crates 2022-10-12 04:34:51 +00:00
Donny/강동윤
fc5d8a5d41
feat(es/minifier): Enable reduce_vars by default (#6096) 2022-10-12 04:32:15 +00:00
SWC Bot
bcc68a8e79 chore: Publish crates 2022-10-12 02:32:34 +00:00
Donny/강동윤
66196a65be
feat(es/minifier): Inline pure array literal partially (#6099) 2022-10-12 02:29:40 +00:00
SWC Bot
e37ced5bf4 chore: Publish crates 2022-10-12 01:55:47 +00:00
Austaras
5a23949f12
feat(es/minifier): Inline and remove vars in one pass (#6093) 2022-10-12 01:52:58 +00:00
SWC Bot
dcb3a4371d chore: Publish crates 2022-10-11 23:55:24 +00:00
SWC Bot
521bdbe9cc chore: Publish crates 2022-10-11 23:11:17 +00:00
Donny/강동윤
ad960c76c0
feat(es/minifier): Detect type of .length (#6120)
**Description:**

This PR updates minifier to detect the type of `xxx.length` if possible.
2022-10-11 23:06:58 +00:00
SWC Bot
5bf306565f chore: Publish crates 2022-10-11 11:23:16 +00:00
Donny/강동윤
6365acc9f5
test(es/minifier): Organize terser tests (#6116)
**Description:**

Our minifier is better than terser in some cases, so we don't need to match the output of terser exactly.
2022-10-11 08:25:11 +00:00
SWC Bot
018ca946e7 chore: Publish crates 2022-10-10 13:09:51 +00:00
SWC Bot
675da485fc chore: Publish crates 2022-10-10 05:40:39 +00:00
Donny/강동윤
3c6cdbc61c
feat(es/minifier): Enable reduce_funcs by default (#6097) 2022-10-10 05:38:17 +00:00
SWC Bot
f5f293e72e chore: Publish crates 2022-10-10 00:56:50 +00:00
Austaras
657e5b3111
feat(es/minifier): Inline more lazily initialized vars (#6089) 2022-10-10 09:53:50 +09:00
SWC Bot
fe51d7aaa2 chore: Publish crates 2022-10-09 00:24:46 +00:00
Donny/강동윤
b0c57458c8
feat(es/minifier): Mark ref to fn as non-call in alias analyzer (#6088) 2022-10-09 09:21:54 +09:00
SWC Bot
818a5cc1eb chore: Publish crates 2022-10-08 04:08:55 +00:00
Donny/강동윤
d0418ebe5b
doc(es/minifier): Document assumptions (#6085) 2022-10-08 13:05:57 +09:00
SWC Bot
969c6eeeeb chore: Publish crates 2022-10-08 03:17:53 +00:00
Donny/강동윤
9ce3df091f
feat(es/minifier): Distinguish calls in alias analyzer (#6080)
**Description:**

This PR improves the alias analyzer by distinguishing call and reference, thus reducing the number of identifiers.

---

Co-authored-by: Justin Ridgewell <justin@ridgewell.name>
2022-10-08 03:15:18 +00:00
SWC Bot
3171718e07 chore: Publish crates 2022-10-07 07:48:18 +00:00
IWANABETHATGUY
8003dc8563
feat(es/codegen): Remove the trailing comma of binding patterns (#6078) 2022-10-07 16:45:20 +09:00
SWC Bot
477626b9ff chore: Publish crates 2022-10-07 05:55:53 +00:00
SWC Bot
15044a35b4 chore: Publish crates 2022-10-06 17:30:14 +00:00
Austaras
ac150c7ced
feat(es/minifier): Use usage_count in sequential inliner (#6071) 2022-10-06 17:27:34 +00:00
SWC Bot
d750f0e03c chore: Publish crates 2022-10-06 16:11:15 +00:00
SWC Bot
5f49ac012e chore: Publish crates 2022-10-06 11:38:55 +00:00
SWC Bot
9d6217f036 chore: Publish crates 2022-10-06 09:15:00 +00:00
Austaras
c9427f1ec4
fix(es/minifier): Improve infection analysis (#6044) 2022-10-06 18:12:09 +09:00
SWC Bot
07611a935c chore: Publish crates 2022-10-06 04:50:27 +00:00
Donny/강동윤
38df5978c1
fix(es/minifier): Mark delete as a property mutation (#6063)
**Related issue:**

 - Closes https://github.com/swc-project/swc/issues/6004.
2022-10-06 04:47:58 +00:00
SWC Bot
02a0cd37d7 chore: Publish crates 2022-10-06 02:49:43 +00:00
Donny/강동윤
d65fba134d
fix(es/minifier): Fix infection analysis of sequential inliner (#6053)
**Description:**

This PR fixes the callee issue by fixing the infection analyzer.

**Related issue:**

 - Closes https://github.com/swc-project/swc/issues/6047
2022-10-06 02:46:22 +00:00
SWC Bot
62dd127e3c chore: Publish crates 2022-10-06 02:13:20 +00:00
Donny/강동윤
36d467e7d7
fix(es/minifier): Fix analysis of var declaration after usage (#6043)
**Description:**

`var_initialized` should be `true` even if the declaration of variable comes after its usage.

**Related issue:**

 - Closes https://github.com/swc-project/swc/issues/6039.
2022-10-06 02:09:13 +00:00
SWC Bot
ad58d5daf8 chore: Publish crates 2022-10-06 01:40:03 +00:00
OJ Kwon
fff4b9ce65
build(cargo): Dedup indexmap with known version (#6060) 2022-10-06 01:36:13 +00:00
SWC Bot
f955f34afc chore: Publish crates 2022-10-05 12:25:56 +00:00
Donny/강동윤
e3b55e4bcf
fix(es/minifier): Fix optimization of numeric keys (#6052)
**Description:**

We should not optimize if the key starts with `0`.

**Related issue:**

 - Closes https://github.com/swc-project/swc/issues/6051.
2022-10-05 12:22:28 +00:00
SWC Bot
cad80e39c8 chore: Publish crates 2022-10-05 11:48:18 +00:00
Donny/강동윤
c5fb774487
fix(es/minifier): Don't skip unresolved identifiers (#6050)
**Related issue:**

 - Closes https://github.com/swc-project/swc/issues/6049
2022-10-05 11:44:51 +00:00
SWC Bot
37286e369e chore: Publish crates 2022-10-04 15:22:12 +00:00
SWC Bot
5df3eb1f43 chore: Publish crates 2022-10-04 14:37:35 +00:00
SWC Bot
676831477c chore: Publish crates 2022-10-04 12:46:12 +00:00
SWC Bot
6749e6948e chore: Publish crates 2022-10-04 07:58:11 +00:00
Donny/강동윤
197c4e269d
fix(es/minifier): Don't evaluate String.fromCharCode for non-ascii values (#6033) 2022-10-04 16:46:59 +09:00
SWC Bot
7746bfb31b chore: Publish crates 2022-10-03 09:02:17 +00:00
Austaras
c4850997a2
feat(es/minifier): Inline vars initialized before the declaration (#6027) 2022-10-03 08:58:38 +00:00
SWC Bot
8e67fcc357 chore: Publish crates 2022-10-03 07:31:41 +00:00
Donny/강동윤
877936f626
feat(es/minifier): Clone trivial literals in sequential inliner (#6005)
**Description:**

As our minifier is two-pass by default, this is enough.

At the first pass, we inline all numeric literals using sequential inliner, and minifier can then inline constants correctly in the second pass.
2022-10-03 07:20:48 +00:00
SWC Bot
d620ce60ff chore: Publish crates 2022-10-02 15:36:08 +00:00
SWC Bot
b450e3829b chore: Publish crates 2022-10-02 11:05:09 +00:00
Donny/강동윤
2b627524ac
feat(es/minifier): Ignore return values of ignored IIFEs (#6020)
**Description:**

As we are not using the return value of the function, we can call `ignore_return_value` on the argument of the return statements of IIFE.
2022-10-02 20:01:56 +09:00
Donny/강동윤
1aae503913
test(es/minifier): Organize terser tests (#6015) 2022-10-02 07:00:10 +00:00
SWC Bot
55ea637450 chore: Publish crates 2022-10-01 09:27:16 +00:00
Austaras
61807abf6e
feat(es/minifier): Inline function calls in more cases (#6010) 2022-10-01 18:18:45 +09:00
SWC Bot
b6824ff254 chore: Publish crates 2022-10-01 03:36:56 +00:00
Austaras
31ffd5a01d
fix(es/renamer): Use a separate scope for the name of FnExpr (#6008) 2022-10-01 12:33:19 +09:00
SWC Bot
628b1a8455 chore: Publish crates 2022-09-30 09:47:09 +00:00
Donny/강동윤
286334c4d0
feat(es/minifier): Drop vars from sequential inliner (#5993)
**Description:**

This PR renames `CloningMultiReplacer` to `Finalizer` and makes it handle the removal of unused variables. Also, this PR improves the sequential inliner so we can drop variables within a single pass.
2022-09-30 09:43:31 +00:00
SWC Bot
97c2e3bf71 chore: Publish crates 2022-09-30 08:57:12 +00:00
Donny/강동윤
2ee3ad0066
fix(es/minifier): Don't inline into nested scope (#6002)
**Related issue:**

- https://github.com/vercel/next.js/discussions/30237#discussioncomment-3768734
2022-09-30 08:53:20 +00:00
Donny/강동윤
10fb645552
chore(ci): Merge CI scripts (#5999)
**Description:**

This PR merges CI scripts, and make integration tests use patched crates.

**Related issue:**

 - Closes https://github.com/swc-project/swc/issues/5540.
2022-09-30 16:57:15 +09:00
SWC Bot
2f626e95eb chore: Publish crates 2022-09-30 07:16:28 +00:00
OJ Kwon
af64217f19
build(cargo): Introduce workspace deps (#5997) 2022-09-30 13:43:32 +09:00
SWC Bot
447e2449d9 chore: Publish crates 2022-09-29 11:06:36 +00:00
Donny/강동윤
aeb7f300a8
feat(es/minifier): Invoke sequential inliner for inlined IIFEs (#5991)
**Description:**

Inlined IIFEs have the exact pattern sequential inliner wants, so it's good to invoke it.
2022-09-29 11:03:06 +00:00
SWC Bot
da7ced9de1 chore: Publish crates 2022-09-29 10:20:18 +00:00
Donny/강동윤
f8358fbe2b
fix(es/minifier): Remove wrong variable joiner pass (#5992)
**Description:**

We had two passes for joining variables. This PR removes one in the full optimizer, which is wrong.

**Related issue:**

 - Closes https://github.com/swc-project/swc/issues/5989.
2022-09-29 19:11:18 +09:00
Donny/강동윤
48b83fb69d chore: Publish crates 2022-09-29 15:50:48 +09:00
Donny/강동윤
af8236d689 fix(es/minifier): Remove print 2022-09-29 15:50:21 +09:00
SWC Bot
f86ff4fa7c chore: Publish crates 2022-09-29 05:19:48 +00:00
Austaras
1a11cfd46f
feat(es/minifier): Improve fn-local analysis for better inlining (#5955) 2022-09-29 14:16:28 +09:00
SWC Bot
18123fb7b0 chore: Publish crates 2022-09-29 02:19:57 +00:00
Donny/강동윤
c411e5d552
feat(es/minifier): Drop more variables while invoking IIFE (#5987) 2022-09-29 02:15:56 +00:00
Donny/강동윤
0cfc724018
test(es/minifier): Add tests for benchmark files (#5986) 2022-09-29 09:41:13 +09:00
SWC Bot
189f9b482f chore: Publish crates 2022-09-29 00:08:42 +00:00
Donny/강동윤
0067f719dd
fix(es/minifier): Don't panic on jsx or ts (#5984) 2022-09-29 00:05:13 +00:00
SWC Bot
c499e2054d chore: Publish crates 2022-09-28 22:57:51 +00:00
SWC Bot
57ef438d9b chore: Publish crates 2022-09-28 14:23:58 +00:00
Donny/강동윤
08f6e81d8e
feat(es/minifier): Ignore more return values (#5981) 2022-09-28 14:20:37 +00:00
SWC Bot
1c9870a744 chore: Publish crates 2022-09-28 13:44:08 +00:00
Donny/강동윤
bc2c0f4133
fix(es/codegen): Fix codegen of a negative number (#5980)
**Related issue:**

 - Closes https://github.com/swc-project/swc/issues/5912.
2022-09-28 13:40:07 +00:00
Donny/강동윤
8c4873f81e
test(es/minifier): Remove mangle-only snapshots (#5979)
**Description:**

We don't have to store snapshots of all fixtures.
2022-09-28 21:35:52 +09:00
SWC Bot
d75addbdec chore: Publish crates 2022-09-28 10:37:40 +00:00
SWC Bot
7c2d6a9f67 chore: Publish crates 2022-09-28 09:23:36 +00:00
Donny/강동윤
e37bb55101
perf(es/minifier): Optimize MultiReplacer (#5977)
**Description:**

This PR splits the `MultiReplacer` into two variants. The first one is the cloning version, and this is parallel. The other one is the non-cloning version, which is not parallel.
2022-09-28 09:19:30 +00:00
SWC Bot
c23c07fc50 chore: Publish crates 2022-09-28 08:16:52 +00:00
Donny/강동윤
0e69890764
feat(es/minifier): Evaluate more literals in comparison (#5976)
**Description:**

I'll fix the performance issue with a follow-up PR.

**Related issue:**

 - Closes https://github.com/swc-project/swc/issues/4415.
2022-09-28 08:07:55 +00:00
SWC Bot
b5be765a87 chore: Publish crates 2022-09-28 05:39:30 +00:00
Austaras
aff4ea5f44
fix(es/minifier): Preserve exports in DCE (#5973) 2022-09-28 05:35:51 +00:00
SWC Bot
f655488cfa chore: Publish crates 2022-09-27 13:57:39 +00:00
SWC Bot
a5918422bf chore: Publish crates 2022-09-27 11:52:21 +00:00
SWC Bot
3eecf954b3 chore: Publish crates 2022-09-27 08:41:58 +00:00