Commit Graph

223 Commits

Author SHA1 Message Date
Donny/강동윤
b76b4999cc
fix(es/codegen): Fix codegen of some non-ascii characters (#5108) 2022-07-05 10:22:25 +00:00
Austaras
9519e801ea
fix(es/resolver): Fix handling of block scoped functions (#5092) 2022-07-05 05:04:49 +00:00
Donny/강동윤
eedcb114a2
test(es/minifier): Add a test case for the minifier (#5013) 2022-06-20 14:38:23 +00:00
Donny/강동윤
36d960c7e9
perf(es/hygiene): Make hygiene faster (#4952) 2022-06-15 14:36:57 +00:00
Donny/강동윤
b3f6f20721
fix(es/resolver): Make catch parameter not disturb resolving (#4976) 2022-06-15 05:24:39 +00:00
Donny/강동윤
99a474cb2d
refactor(es/minifier): Use Program instead of Module (#4969) 2022-06-14 16:33:38 +00:00
Austaras
47bdc6a6b1
feat(es/minifier): Turn Array/Object calls into literals (#4947) 2022-06-12 02:36:49 +00:00
magic-akari
594089488b
feat(es/minifier): Drop new token if possible (#4932) 2022-06-11 05:27:13 +00:00
Donny/강동윤
be87494495
fix(es/minifier): Reserve more symbols on eval (#4925) 2022-06-10 08:49:56 +00:00
Austaras
83ae6a1f1f
feat(es/minifier): Remove extra parens in BinExpr (#4878) 2022-06-05 05:52:22 +00:00
Donny/강동윤
8365c3d0df
fix(es/minifier): Make if_return to not drop required returns (#4847) 2022-05-30 06:46:01 +00:00
Donny/강동윤
0567f67664
fix(es/minifier): Apply name mangler for more cases (#4840) 2022-05-29 11:15:16 +00:00
Donny/강동윤
7f69b9c80f
test(es/minifier): Add snapshots for the mangler (#4823)
I found a way to make the name mangler parallel, but I want to ensure that we don't break anything.
2022-05-27 07:32:23 +00:00
Donny/강동윤
4b27df9f12
perf(es/minifier): Make more passes parallel (#4821) 2022-05-27 06:48:08 +00:00
Donny/강동윤
073b1469e6
fix(es/minifier): Don't create names which is same as an unresolved var (#4806) 2022-05-26 09:27:24 +00:00
Donny/강동윤
1c48a8c8f4
fix(es/minifier): Consider side effects while removing an object spread (#4788) 2022-05-26 07:37:34 +00:00
Donny/강동윤
38a866a900
test(es): Make execution tests faster (#4789) 2022-05-25 06:23:35 +00:00
brightwu
f28d9c143b
fix(es/resolver): Fix more edge cases related to catch and var (#4773) 2022-05-24 09:24:42 +00:00
Donny/강동윤
e4dee1ed33
fix(es/minifier): Consider parameters while detecting pure calls (#4748) 2022-05-23 13:04:11 +00:00
Donny/강동윤
0f85f7b9de
chore(ci): Fix CI (#4747) 2022-05-23 07:47:05 +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/강동윤
a51816a577
feat(es/minifier): Handle prefix update expressions with sequential inliner (#4741) 2022-05-23 04:29:31 +00:00
Donny/강동윤
9e42382091
feat(es/minifier): Implement pure_funcs (#4710) 2022-05-22 12:07:28 +00: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
Kevin Barabash
72fbf692a4
fix(es/codegen): Don't add a newline after an arrow body (#4711) 2022-05-19 07:12:37 +00:00
Donny/강동윤
73dfa95e5a
fix(es/minifier): Fix analysis of assignment patterns (#4712) 2022-05-19 05:10:12 +00:00
Donny/강동윤
6f565fbb3a
test(es/minifier): Categorize more tests (#4709) 2022-05-19 04:33:11 +00:00
Donny/강동윤
9a27b5f275
perf(es/minifier): Make minifier more parallel (#4699) 2022-05-18 13:51:25 +00:00
Donny/강동윤
274648ec26
feat(es/minifier): Improve if_return (#4694) 2022-05-18 08:39:57 +00:00
Donny/강동윤
183e884cbf
fix(es/minifier): Don't hoist functions with dead_code (#4695) 2022-05-18 07:25:25 +00:00
Donny/강동윤
c01476d9ae
feat(es/minifier): Enable conditionals by default (#4687) 2022-05-17 07:34:47 +00:00
Donny/강동윤
04d66dbc8b
feat(es/minifier): Enable computed_props by default (#4678) 2022-05-16 12:51:38 +00:00
Donny/강동윤
3bb4b74d94
fix(es/minifier): Consider fallthrough while merging swtich cases (#4672) 2022-05-16 12:27:24 +00:00
Donny/강동윤
ba6688a783
feat(dbg-swc): Make reducer parallel (#4676) 2022-05-16 12:49:42 +09:00
Donny/강동윤
36ff4f735f
test(es/minifier): Add size tests using dbg-swc (#4664) 2022-05-16 03:01:53 +00:00
Donny/강동윤
8a40b583a5
feat(es/minifier): Implement directives (#4668) 2022-05-15 10:02:55 +00:00
Donny/강동윤
96cec97b2c
fix(es/minifier): Don't inline a function if we need referential equality (#4665) 2022-05-15 09:37:34 +00:00
Donny/강동윤
eb8508f88c
feat(es/codegen): Implement ascii-only (#4660) 2022-05-15 05:07:21 +00:00
Donny/강동윤
053f42b3aa
feat(es/minifier): Improve minifier (#4655)
swc_ecma_transforms_base:
 - Improved `fixer`.

swc_ecma_minifier:
 - `ignore_return_value`: Support computed access to array literals.
2022-05-14 07:06:03 +00:00
Donny/강동윤
9c190f0a8e
fix(es/minifier): Fix optimization of spread (#4639) 2022-05-12 09:20:44 +00:00
Donny/강동윤
79f87e03db
test(es/minifier): Execute more tests (#4636) 2022-05-12 16:28:52 +09:00
Donny/강동윤
56a227ad9d fix(es/minifier): Don't create direct eval (#4634)
- `expr_simplifier`: Preserve `this`.
 - `ExprReplacer`: Inject `0` after inlining eval.
 - `MultiReplacer`: Inject `0` after inlining eval.
2022-05-12 15:14:18 +09:00
Donny/강동윤
6a97c7bef8
fix(es/utils): Fix wrong apis (#4604)
# API Changes

## `swc_ecma_utils`

### Renames

 - `find_ids` => `find_pat_ids`
 - `prepend` => `prepend_stmt`
 - `as_bool` => `cast_to_bool`
 - `as_number` => `as_pure_number`
 - `as_string` => `cast_to_string`
 - (`as_pure_bool`, `cast_to_number` is not renamed)
 - `UsageFinder` => `IdentUsageFinder`.
 - `IdentFinder` => `IdentRefFinder`.

## Changes

 - Re-export of `HANDLER` from `swc_common::errors` is removed. Use `swc_common::error::HANDLER` instead.
 - Re-export of `Id` from `swc_ecma_ast` is removed. Use `swc_ecma_ast::Id` instead.
 - `ExprCtx` is used for apis related to `Expr`.
 - `preserve_effects` is now a method of `ExprCtx`. It was a top-level function.
 - `extract_side_effects_to` is now a method of `ExprCtx`. It was a top-level function.
 - `IdentUsageFinder` (previously `UsageFinder`) now takes `Id` instead of `Ident`.
 - `IdentRefFinder` (previously `IdentFinder`) now takes `Id` instead of `Ident`.
 - `ExprExt::is_ident_ref_to` is removed.
 - `Expr::is_global_ref_to` is added.
 - `:🆔:id` is removed. Use `Ident::to_id()` instead.
2022-05-11 04:36:22 +00:00
Donny/강동윤
6918e3a4fb
test(es/minifier): Postpone tests which can be verified by execution tests (#4600) 2022-05-10 14:47:37 +09:00
Donny/강동윤
859dc440b4
fix(es/minifier): Preserve more this (#4599) 2022-05-10 05:20:36 +00:00
Donny/강동윤
d611d543ea
fix(es/fixer): Handle new yield (#4598) 2022-05-10 04:17:11 +00:00
Donny/강동윤
8944a3bdf5
fix(es/minifier): Fix switch with a unknown case (#4597) 2022-05-10 03:55:34 +00:00
Donny/강동윤
097ff1ddc1
fix(es/minifier): Fix with and NaN (#4596) 2022-05-10 03:21:43 +00:00