HeYunfei
b5d31cc2da
fix(es/utils): Fix detection of hoisting ( #6738 )
2023-01-03 03:12:01 +00:00
HeYunfei
dabea71c44
fix(es/minifier): Preserve unused imported specifiers ( #6458 )
2022-11-17 00:52:19 +00:00
Donny/강동윤
743a1aab4f
feat(es/minfiier): Compute more with sequential inliner ( #6169 )
2022-10-27 00:50:52 +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
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/강동윤
27896f4751
perf(es/transforms): Exclude old inlining pass ( #6203 )
...
**Related issue:**
- Closes https://github.com/swc-project/swc/issues/6194 .
2022-10-19 04:53:46 +00:00
Donny/강동윤
2e153e5555
fix(es/minifier): Don't create a numeric literal with NaN
value ( #6166 )
2022-10-15 12:52:34 +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
Donny/강동윤
e88c1c04e1
perf(es/minifier): Remove double-visit of DCE ( #6069 )
...
**Related issue:**
- Closes https://github.com/swc-project/swc/issues/6066 .
2022-10-06 16:08:03 +00:00
Austaras
aff4ea5f44
fix(es/minifier): Preserve exports in DCE ( #5973 )
2022-09-28 05:35:51 +00:00
Donny/강동윤
3c3529cb84
build(rustc): Update rustc ( #5943 )
...
**Description:**
This PR updates rustc, and fix some performance bugs of `swc_common`.
2022-09-24 03:33:47 +00:00
Donny/강동윤
e16827cc9d
feat(es/minifier): Drop cycles in nested functions ( #5933 )
2022-09-22 13:54:49 +00:00
Donny/강동윤
1a182ef8d9
perf(es): Optimize memory layout of AST ( #5829 )
2022-09-20 12:47:21 +09:00
Donny/강동윤
fe3072b12a
perf(es/minifier): Reduce type sizes ( #5843 )
2022-09-13 06:45:33 +00:00
Donny/강동윤
b6cf9750ec
perf(es/minifier): Make the expression simplifier more parallel ( #5841 )
...
**Description:**
It was not parallel enough.
2022-09-13 06:02:44 +00:00
Donny/강동윤
cfe575e35a
perf(es/minifier): Make expression simplifier stateless and parallel ( #5819 )
2022-09-11 06:18:44 +00:00
Donny/강동윤
704ea3d48d
perf(es/minifier): Optimize usage of IndexSet
( #5814 )
2022-09-10 17:11:41 +00:00
Donny/강동윤
c2d10503db
perf(es/minifier): Make passes more parallel ( #5773 )
2022-09-07 14:28:36 +09:00
Donny/강동윤
8789184d44
perf(es/minifier): Cache the list of bindings for DCE ( #5750 )
2022-09-05 07:05:44 +00:00
Donny/강동윤
08b2aea2b0
perf(es/minifier): Use efficient logic for entry tracking in DCE ( #5749 )
2022-09-05 04:35:40 +00:00
Donny/강동윤
2baa640e98
perf(es/minifier): Make passes more parallel ( #5741 )
2022-09-04 15:34:46 +00:00
Donny/강동윤
6ba6da62d7
perf(es/minifier): Make dead branch remover parallel ( #5734 )
2022-09-04 07:33:26 +00:00
Donny/강동윤
25c96b4b7a
perf(es/minifier): Use faster hash algorithm for DCE ( #5725 )
2022-09-03 14:33:09 +09:00
Donny/강동윤
5e151c8a8e
feat(es/minifier): Support cycles in DCE ( #5715 )
2022-09-03 04:41:54 +00:00
Donny/강동윤
8827c38faf
feat(es/minifier): Make DCE single-pass ( #5699 )
2022-09-01 16:30:21 +00:00
Donny/강동윤
3eb1f4b2b1
chore(ci): Fix lints ( #5462 )
2022-08-12 13:13:35 +00:00
Austaras
e35990390b
fix(es/fixer): Remove needless parens for nested ??
( #5432 )
2022-08-10 08:26:33 +00:00
Austaras
2e9c9bea1a
fix(es/minifier): Fix size calculation of numbers ( #5232 )
2022-07-17 18:07:35 +09:00
Donny/강동윤
36d960c7e9
perf(es/hygiene): Make hygiene
faster ( #4952 )
2022-06-15 14:36:57 +00:00
LongYinan
db9f7a5ad4
chore(ci): Fix publish build on Windows ( #4970 )
2022-06-14 15:58:10 +00:00
Donny/강동윤
35c93be60f
perf(es/transforms): Make transforms parallel ( #4939 )
2022-06-11 07:42:43 +00:00
Donny/강동윤
06420d99bb
fix(es/minifier): Don't drop typeof
( #4883 )
2022-06-05 07:43:53 +00:00
Donny/강동윤
f847709787
chore(common): Update rustc ( #4828 )
2022-05-28 07:07:58 +00:00
Donny/강동윤
a487fc1d28
refactor(es/transforms): Remove concurrent
( #4808 )
2022-05-26 15:58:19 +00:00
Donny/강동윤
07356a5bba
fix(es/ast): Fix EqIgnoreSpan
of Ident
( #4689 )
2022-05-17 10:21:01 +00:00
Donny/강동윤
9c190f0a8e
fix(es/minifier): Fix optimization of spread ( #4639 )
2022-05-12 09:20:44 +00: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/강동윤
2c861bd9e5
feat(es/ast): Improve Id
APIs ( #4614 )
...
# API Changes
- `Ident` now has `to_id()`. This method is added to allow removing an import.
2022-05-11 12:02:14 +09:00
Donny/강동윤
859dc440b4
fix(es/minifier): Preserve more this
( #4599 )
2022-05-10 05:20:36 +00:00
Donny/강동윤
097ff1ddc1
fix(es/minifier): Fix with
and NaN
( #4596 )
2022-05-10 03:21:43 +00:00
Donny/강동윤
2ab7594b4a
fix(es/minifier): Fix switches ( #4595 )
2022-05-09 21:36:09 +00:00
Donny/강동윤
dd09cdf8b1
fix(es/minifier): Fix handling of NaN
( #4593 )
2022-05-09 19:08:28 +00:00
Donny/강동윤
7fc9bbccd9
feat(config): Make all configuration overridable ( #4575 )
2022-05-09 05:38:27 +00:00
Donny/강동윤
53610fdafc
feat(es/resolver): Use different syntax context for unresolved refs ( #4436 )
...
- We don't need a list of bindings to check if an identifier is unresolved.
- Checking if an identifier is unresolved is now one CPU instruction.
- Previously it was one hashmap operation.
- This PR also improves performance, by removing the hashmaps mentioned above.
2022-04-26 07:38:50 +00:00
Donny/강동윤
8048597c9e
feat(es/optimization): Accept top level mark from simplifiers ( #4434 )
2022-04-25 15:31:59 +00:00
Donny/강동윤
8ab12fd97b
fix(es/minifier): Preserve more side effects ( #4420 )
2022-04-25 06:56:19 +00:00
Donny/강동윤
922299a490
fix(es/minifier): Don't drop labels if required ( #4370 )
2022-04-20 13:34:21 +00:00
Donny/강동윤
da6fa60231
perf(es): Disable wrong parallelization ( #4354 )
2022-04-17 16:24:00 +00:00
Donny/강동윤
7e8f613272
feat(es/minifier): Enable conditionals
by default ( #4301 )
2022-04-12 02:12:10 +00:00