Donny/강동윤
76e646804a
fix(es/parser): Parse if-else chain iteratively ( #3961 )
2022-03-11 09:10:54 +00:00
underfin
91a302a672
fix(es/minifier): Preserve fuction parameters used for template literals in evaluate
and reduce_vars
( #3949 )
2022-03-10 15:21:06 +00:00
underfin
cc564ff6c5
fix(es/minifier): Skip exported vars while collapsing vars ( #3928 )
2022-03-10 06:19:25 +00:00
Donny/강동윤
9e4dea6663
feat(es/minifier): Improve dropping of unused vars ( #3923 )
2022-03-09 15:43:01 +00:00
Austaras
bd838ac5a9
feat(es/minifier): Remove pure calls ( #3925 )
2022-03-09 11:55:31 +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/강동윤
a2643608a7
feat(es/minifier): Implement pure_getters
partially ( #3872 )
2022-03-05 20:18:52 +00:00
Donny/강동윤
260c2a885e
feat(es/minifier): Implement more rules ( #3841 )
...
swc_ecma_minifier:
- `conditionals`: Preserve a conditional expression if test is not resolved.
- `unsafe_arrows`: Optimize an anonymous function expression as an arrow expression.
- `unsafe_methods`: Optimize a method property where the only statement is return to an arrow expression.
2022-03-04 02:09:15 +00:00
Donny/강동윤
0fc819e2ef
fix(es/minifier): Support declaring multiple bindings with the same name ( #3837 )
2022-03-04 06:58:39 +09:00
Donny/강동윤
364532e9a7
feat(es/minifier): Improve sequential inlining ( #3820 )
2022-03-03 19:18:43 +00:00
Donny/강동윤
043fba274e
fix(es/hygiene): Fix renaming bugs ( #3824 )
2022-03-03 06:21:13 +00:00
Donny/강동윤
8a468f7544
fix(es/minifier): Don't reorder unnecessarily ( #3817 )
2022-03-02 08:57:50 +00:00
Donny/강동윤
89388e6ac3
fix(es/minifier): Preserve more variables ( #3805 )
2022-03-02 07:13:57 +00:00
Donny/강동윤
789eb7baa9
feat(es/minifier): Drop more function parameters in strict mode ( #3814 )
2022-03-02 06:41:11 +00:00
Austaras
e1b13eb21a
feat(es/codegen): Optimize output of new expressions without arguments ( #3800 )
2022-03-01 10:55:49 +00:00
Donny/강동윤
8beaa202e2
fix(es/minifier): Fix optimizations of terminating expressions ( #3794 )
2022-03-01 09:55:45 +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/강동윤
86072b57f9
test(es/minifier): Prepare porting more rules from terser
( #3779 )
2022-02-28 13:49:10 +00:00
Donny/강동윤
714e05e553
feat(es/minifier): Consider arguments
while dropping unused assignments ( #3775 )
...
swc_ecma_minifier:
- `analyze`: Track usage of `arguments`.
2022-02-28 21:57:09 +09: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/강동윤
e7f7f69db4
fix(es/minifier): Disable some operations for asm.js codes ( #3572 )
2022-02-28 07:40:04 +00:00
Donny/강동윤
3d944656bf
refactor(es): Make compilation faster ( #3749 )
2022-02-26 06:41:14 +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/강동윤
e9fabd61e8
feat(es/minifier): Improve name mangler ( #3638 )
2022-02-20 12:08:26 +00:00
Donny/강동윤
10adf1e548
feat(es/minifier): Merge exports ( #3643 )
2022-02-20 10:44:21 +00:00
Donny/강동윤
d2c94416a8
feat(es/minifier): Treat !0
as a literal while inlining ( #3631 )
2022-02-19 17:33:36 +09:00
Donny/강동윤
bfc9897e34
fix(es/minifier): Disable name mangler if eval
is used ( #3526 )
2022-02-15 07:29:45 +00:00
Donny/강동윤
ac1d4058f2
fix(es/minifier): Fix analyzer ( #3557 )
...
swc_ecma_utils:
- `collect_decls`: Support paramters of arrow expressions.
swc_ecma_minifier:
- `analyzer`: Fix `has_property_mutation`.
2022-02-14 15:47:16 +09:00
Donny/강동윤
73e9185bba
test(es/minifier): Add snapshot testing for the analyzer ( #3529 )
2022-02-11 18:33:08 +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
William Tetlow
5488159ba5
feat(es/minifier): Implement reserved
mangle option ( #3476 )
2022-02-10 13:53:47 +09:00
Donny/강동윤
9b76783281
refactor(common): Cleanup & rustfmt ( #3495 )
...
swc_common:
- Merge identical source codes.
swc_css_parser:
- Deny `clippy::all`.
- Fix lints.
2022-02-09 06:33:32 +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/강동윤
0371c41b7c
fix(es/minifier): Fix mapbox
( #3463 )
...
swc_ecma_minifier:
- `mangler`: Handle the identifiers of class expressions correctly.
2022-02-07 13:43:00 +09:00
Donny/강동윤
5812c3c10f
fix(es/minifier): Fix codemirror
( #3462 )
...
swc_ecma_minifier:
- Mark for in/of loops as executed multiple times.
- Check captured identifiers while invoking IIFE.
2022-02-07 11:11:53 +09:00
Alexander Akait
e8b64a9871
feat(es/codegen): Improve compression of numbers ( #3425 )
2022-02-03 13:04:32 +09:00
Donny/강동윤
91d78000ea
feat(es/minifier): Implement drop_console
( #3392 )
...
swc_ecma_minifier:
- Merge `drop_console` into pure optimizer.
- Implement `drop_console`. (Closes #2321 )
2022-01-28 16:08:41 +09:00
Donny/강동윤
38c2499358
fix(es/minifier): Fix evaluator ( #3391 )
2022-01-28 13:43:29 +09:00
Donny/강동윤
7ef3bfa5b6
refactor(es/minifier): Merge execution tests into a file to make git
faster ( #3377 )
2022-01-27 17:41:43 +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/강동윤
8007b2dc93
feat(es/minifier): Handle array literals in sequences
( #3348 )
...
swc_ecma_minifier:
- `sequences`: Implement more rules for array literals.
2022-01-24 21:10:20 +09:00
Donny/강동윤
6921ffbbda
fix(es/minifier): Respect block scoping while negating if statements ( #3344 )
...
swc_ecma_minifier:
- Don't negate a if statement if it has `let`/`const` binding.
2022-01-24 00:19:33 +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/강동윤
4f23d651d1
fix(es/minifier): Consider capturing while inlining ( #3322 )
...
swc_ecma_minifier:
- Don't inline functions if it captures the environment.
2022-01-21 10:24:41 +09:00
Donny/강동윤
57204e39cd
fix(es/minifier): Don't inline functions used as arguments ( #3320 )
...
swc_ecma_minifier:
- Preserve a variable initialized with a function expression if it's used as an argument.
2022-01-20 16:06:23 +09:00
Donny/강동윤
b4d21bf077
fix(es/minifier): Prevent infinite loop due to negation ( #3310 )
...
swc_ecma_minifier:
- Don't mark as modified while negating.
2022-01-19 23:17:17 +09:00
Donny/강동윤
1aa494b1c0
fix(es/minifier): Fix logic for checking arguments
( #3313 )
...
swc_ecma_minifier:
- Don't mark `arguments` in nested scope as a inline blocker.
2022-01-19 17:39:24 +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