Donny/강동윤
00e635b9ea
fix(es/minifier): Improve alias analyzer ( #5500 )
2022-08-26 07:56:40 +00:00
Austaras
d2f3e29bb0
feat(es/minifier): Ignore recursive usage for function calls and pure calls ( #5526 )
2022-08-17 23:24:10 +00:00
Austaras
ca21fd0c4d
fix(es/minifier): Inline vars declared in conditional paths ( #5392 )
2022-08-05 13:25:28 +00:00
Austaras
b221f90117
fix(es/minifier): Optimize inlining function calls with a literal in arguments ( #5365 )
2022-08-02 11:37:40 +00:00
Austaras
6573324d9c
feat(es/minifier): Calculate correct size ( #5253 )
2022-07-20 08:25:26 +00:00
Donny/강동윤
0e4a03ccc6
fix(es/minifier): Don't inline a callable expression if it's used as a reference ( #5118 )
2022-07-06 03:53:11 +00:00
Donny/강동윤
b76b4999cc
fix(es/codegen): Fix codegen of some non-ascii characters ( #5108 )
2022-07-05 10:22:25 +00:00
Donny/강동윤
36d960c7e9
perf(es/hygiene): Make hygiene
faster ( #4952 )
2022-06-15 14:36:57 +00:00
magic-akari
594089488b
feat(es/minifier): Drop new
token if possible ( #4932 )
2022-06-11 05:27:13 +00:00
Austaras
83ae6a1f1f
feat(es/minifier): Remove extra parens in BinExpr
( #4878 )
2022-06-05 05:52:22 +00:00
Donny/강동윤
49b3c2715c
refactor(es/minifier): Make rust-analyzer
fast, really ( #4746 )
2022-05-23 16:16:05 +09:00
Donny/강동윤
47e6cc5190
refactor(es/minifier): Make rust-analyzer
faster ( #4744 )
...
- We now use a separate crate for testing the minifier. This makes IDE much faster.
2022-05-23 15:53:01 +09:00
Donny/강동윤
dc67911f61
feat(es/minifier): Implement more skipping rules for sequences
( #4716 )
2022-05-20 16:01:27 +09:00
Donny/강동윤
1358f452e7
fix(es/minifier): Consider more side effects while inlining ( #4715 )
2022-05-20 04:57:38 +00:00
Donny/강동윤
c01476d9ae
feat(es/minifier): Enable conditionals
by default ( #4687 )
2022-05-17 07:34:47 +00:00
Donny/강동윤
3521ce09e7
fix(es/minifier): Consider more aliases in sequences pass ( #4583 )
2022-05-09 16:36:40 +00:00
Donny/강동윤
7e80c10cba
fix(es/minifier): Don't create an invalid labeled statement ( #4581 )
2022-05-09 09:15:12 +00:00
Austaras
b3b6fd448c
feat(es/minifier): Remove duplicate control flow in nested blocks ( #4569 )
2022-05-08 13:07:58 +09:00
Donny/강동윤
a6d404a8c2
chore(repo): Configure prettier
( #4523 )
2022-05-04 14:25:28 +00:00
Donny/강동윤
918c9c8a21
feat(es/minifier): Drop pure new
calls ( #4478 )
2022-04-29 07:22:13 +00:00
Donny/강동윤
7a584d755a
feat(es/minifier): Consider cost of functions for inlining ( #4470 )
2022-04-29 05:58:59 +00:00
Donny/강동윤
273954640a
feat(es/minifier): Drop more returns ( #4471 )
2022-04-28 13:28:33 +00:00
Donny/강동윤
233c4d5b86
fix(es/minifier): Fix skipping logic of sequential inliner ( #4469 )
2022-04-28 11:41:41 +00:00
Donny/강동윤
375cc5975a
fix(es/minifier): Disable conditionals
by default ( #4391 )
2022-04-22 10:44:53 +09:00
Austaras
8cf3ddda6c
feat(es/minifier): Improve handling of switches ( #4260 )
2022-04-21 10:00:25 +00:00
Donny/강동윤
7e8f613272
feat(es/minifier): Enable conditionals
by default ( #4301 )
2022-04-12 02:12:10 +00:00
Alexander Akait
f39d3aca4d
feat(es/ast): Add raw
to Num
( #4245 )
2022-04-05 12:46:35 +00:00
Donny/강동윤
4701da576f
feat(es/minifier): Improve inliner and evaluator ( #4216 )
2022-04-05 06:25:23 +00:00
Donny/강동윤
fe358ad0b9
feat(es/minifier): Improve sequential inlining ( #4231 )
2022-04-03 13:13:15 +00:00
Donny/강동윤
ee5c48c935
feat(es/minifier): Implement more rules for optimizing for-if-break ( #4140 )
2022-03-24 00:49:32 +00:00
Alexander Akait
634d732803
feat(es/ast): Add raw
to Str
( #4071 )
2022-03-22 07:54:08 +00:00
Donny/강동윤
4a9817f003
fix(es/minifier): Consider side effects while lifting sequences ( #4116 )
2022-03-22 06:25:19 +00:00
Donny/강동윤
c6f8742669
feat(es/minifier): Implement more evaluation rules ( #4030 )
2022-03-21 20:07:59 +09:00
Alexander Akait
bd444c0ceb
fix(es/codegen): Fix codegen of string literals ( #4037 )
2022-03-16 14:25:26 +00:00
Donny/강동윤
9e4dea6663
feat(es/minifier): Improve dropping of unused vars ( #3923 )
2022-03-09 15:43:01 +00:00
Austaras
7cfa930a62
feat(es/fixer): Remove extra parens around IIFE in statements ( #3918 )
2022-03-08 14:35:18 +00:00
Austaras
9dd0105c5b
feat(es/fixer): Remove extra parens around iife in expression position ( #3887 )
2022-03-07 03:51:57 +00:00
Donny/강동윤
364532e9a7
feat(es/minifier): Improve sequential inlining ( #3820 )
2022-03-03 19:18:43 +00:00
Donny/강동윤
73cab638a1
fix(es/minifier): Preserve unresolved references ( #3780 )
...
swc_ecma_minifier:
- `pure`: Add an optional list of bindings.
- `pure`: Drop identifier only if we have the complete list of bindings.
- `pure`: Allow using `GLOBALS`.
- `pure`: Drop some pure member expressions.
- Move identifier dropping logic from the stateful optimizer to the pure optimizer.
- `pure`: Drop more references to global declarations.
2022-02-28 16:31:13 +00:00
Donny/강동윤
cfc036381a
fix(es/minifier): Fix inlining logic ( #3776 )
...
swc_ecma_minifier:
- Make `inline_vars_in_node` use `MultiReplacer`.
2022-02-28 12:07:12 +00:00
Donny/강동윤
da2c77d9af
perf(es/minifier): Parallelize join_vars
( #3655 )
2022-02-21 05:34:32 +00:00
Donny/강동윤
de6effc6e1
feat(es/minifier): Drop more unused vars ( #3656 )
2022-02-21 04:35:56 +00:00
Donny/강동윤
d2c94416a8
feat(es/minifier): Treat !0
as a literal while inlining ( #3631 )
2022-02-19 17:33:36 +09:00
Donny/강동윤
a7f0e84bbf
feat(es/minifier): Drop useless assignments ( #3528 )
...
testing:
- Allow skipping diff using an environment variable `DIFF`.
swc_ecma_minifier:
- `pure`: Drop useless assignemnts.
2022-02-11 08:43:48 +00:00
Donny/강동윤
292add7d26
fix(es/minifier): Make sequences
less aggressive ( #3480 )
...
swc_ecma_minifier:
- `sequences`: Abort on RHS contains the left id.
2022-02-08 19:10:22 +09:00
Donny/강동윤
68e9017376
fix(es/minifier): Improve minifier ( #3350 )
...
swc_ecma_transforms_optimization:
- `expr_simplifier`: Track more changes.
swc_ecma_minifier:
- Analyze after applying the pure optimizer.
- Preserve access to a variable not in scope.
- `compress`: Remove string literal if it was not a directive.
- `pure/collapse_vars`: Merge vars declared in the first statement into one with initializers if `collapse_vars` and `join_vars` are enabled.
- `unused`: Use `usage_count` instead of `ref_count`.
- `unused`: Fix dropping rule for member expressions.
- `unused`: Fix dropping rule for declarations.
- `hoist_props`: Preserve exported items.
2022-01-27 15:36:22 +09:00
Donny/강동윤
d52a1f3899
fix(es/minifier): Don't inline a var if the initializer is reassigned ( #3333 )
...
swc_ecma_minifier:
- Consider reassignment to initializer while inlining a variable.
2022-01-21 14:01:20 +09:00
Donny/강동윤
8e796cdc0a
fix(es/minifier): Don't emit invalid code ( #3302 )
...
swc_ecma_minifier:
- Add lots of debug assertions for invalid codes.
- Remove all invalid AST nodes eagerly.
- `pure`: Normalize `PatOrExpr`.
- `analyzer`: Handle `PatOrExpr` correctly.
2022-01-18 20:52:21 +09:00
Donny/강동윤
210ecf83bb
feat(es/minifier): Drop more expressions from parallel optimizer ( #3303 )
...
swc_ecma_minifier:
- `pure`: Implement more rule for dropping useless expressions.
2022-01-18 16:45:47 +09:00
Donny/강동윤
efd86715c9
fix(es/minifier): Preserve side effects in correct position ( #3263 )
...
swc_ecma_minifier:
- Add `fake_block` mark.
- Inject statements for side effects from `visit_mut_stmt` instead of `visit_mut_stmt_likes`. (Closes #2926 )
2022-01-14 16:36:48 +09:00