Donny/강동윤
206c0dbebe
fix(es/compat): Fix syntax context of async-to-generator
( #6741 )
...
**Description:**
Previously, the `async-to-generator` produced invalid AST, in the aspect of span hygiene.
[Playground](https://play.swc.rs/?version=1.3.24&code=H4sIAAAAAAAAAz1MbQqAIBT77yn2UyG6gNQJuoSZRCAa7xkk4d1TicZgH7C5%2B4yUYGPgBE7ZuyWazREmSIVpxiMAcumi0C3ANZxyvQ6%2Fqa8CehxjaGNpOAcLaWjn%2F6KhKN1dGaoULSpfHPTdxn8AAAA%3D&config=H4sIAAAAAAAAA0WOSwrDMAxE76K1F22hXfgE3fQQxlWCi39ICsQY3z12cMlOjObNTIUfW9AVsiFGGheXKGYHDVIysiWXBRQId2kxnrEpwF2QovFv9BmJQQtt2D2GVpROIj9u92enfEqMk1MQXHRLGR02hUzIfL1MXP3f2XpFSN9tCPWccWa%2BoF0Zk3P8mcYxoR3Kj7IYzwAAAA%3D%3D ).
It generate two bindings for `args` so it's invalid.
**Related issue:**
- Closes https://github.com/swc-project/swc/issues/6730 .
2023-01-03 09:45:03 +00:00
HeYunfei
b5d31cc2da
fix(es/utils): Fix detection of hoisting ( #6738 )
2023-01-03 03:12:01 +00:00
HeYunfei
9154bbc111
fix(es/minifier): Avoid dropping statements which has side-effects ( #6476 )
2022-11-20 00:26:52 +00:00
Austaras
f7072dbb7e
fix(es/compat): Fix consecutive optional call ( #6461 )
2022-11-17 02:00:46 +00:00
magic-akari
68ffc5bc3e
fix(es/utils): Verify the name of an alias ( #6423 )
2022-11-13 08:41:48 +00:00
Austaras
574502a816
feat(es/utils): Use more unique names for aliases ( #6399 )
2022-11-11 01:57:49 +00:00
Daiki Nishikawa
f6faeb3bad
fix(es/parser): Fix parsing of TS satisfies
expressions ( #6354 )
2022-11-07 03:56:15 +00:00
Donny/강동윤
cc848db80e
feat(es/minifier): Mark more expressions as pure ( #6204 )
2022-10-20 05:06:32 +00:00
Donny/강동윤
6a42e511e8
feat(es/utils): Add indexed API to the parallel helper ( #6149 )
2022-10-14 10:39:36 +00:00
Donny/강동윤
fc5d8a5d41
feat(es/minifier): Enable reduce_vars
by default ( #6096 )
2022-10-12 04:32:15 +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
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/강동윤
5cddb4c734
feat(es/typescript): Support TS 4.9 ( #5938 )
...
**Description:**
This PR adds satisfaction expression to the AST and parser.
2022-09-23 16:41:56 +09:00
Donny/강동윤
1a182ef8d9
perf(es): Optimize memory layout of AST ( #5829 )
2022-09-20 12:47:21 +09:00
Donny/강동윤
c3fa96b21b
fix(es/minifier): Fix unicode handling ( #5875 )
2022-09-15 14:45:33 +00:00
Donny/강동윤
dfb01bde71
refactor: Refactor code using clippy ( #5863 )
...
**Description:**
I temporarily updated rustc to use newer version of `cargo clippy`.
2022-09-14 15:05:59 +00:00
Donny/강동윤
32f18068ad
fix(es/minifier): Preserve more side effects ( #5853 )
...
**Description:**
We now preserve more side effects.
**Related issue:**
- Closes https://github.com/swc-project/swc/issues/5680 .
2022-09-14 06:51:56 +00:00
Donny/강동윤
64f42bec27
refactor(es/utils): Move utilities for parallel processing ( #5742 )
2022-09-04 23:54:36 +09:00
Donny/강동윤
e8edb67def
feat(es): Improve APIs for plugin authors ( #5632 )
...
- All variants of `Expr` now implement `Into<Box<Expr>>`.
- All variants of `Expr` now implement `Into<PatOrExpr>`.
- All variants of `Pat` now implement `Into<PatOrExpr>`.
- All variants of `Pat` now implement `Into<Param>`.
- `StmtOrModuleItem` is improved.
2022-08-26 09:28:14 +00:00
Donny/강동윤
83fec33359
feat(es/generator): Use new generator implementation ( #5627 )
2022-08-25 16:10:47 +00:00
Donny/강동윤
927ae7e8d3
fix(es/compat): Revert generator reimplementation ( #5624 )
2022-08-25 17:58:37 +09:00
Donny/강동윤
2aa009018f
feat(es/generator): Replace generator implementation with one from tsc ( #5173 )
2022-08-25 04:50:00 +00:00
magic-akari
86452511e7
fix(es/compat): Fix destructuring assignments and updates of super properties in async method ( #5580 )
2022-08-22 13:36:02 +00:00
Austaras
69f8945911
feat(es/minifier): Remove more functions and classes ( #5552 )
2022-08-19 04:28:06 +00:00
Donny/강동윤
3eb1f4b2b1
chore(ci): Fix lints ( #5462 )
2022-08-12 13:13:35 +00:00
OJ Kwon
c2273255c0
fix(es/utils): Allow quote_ident!
working with swc_core
( #5409 )
2022-08-07 02:43:15 +00:00
magic-akari
cdb6164937
fix(es/modules): Use an indirect call for a tagged template ( #5382 )
2022-08-04 04:59:42 +00:00
Austaras
8611161c02
fix(es/minifier): Ignore member expression without side-effects in assign position ( #5344 )
2022-07-31 16:40:58 +09:00
magic-akari
1d10c3e837
fix(es/utils): Fix contains_top_level_await
( #5335 )
2022-07-29 04:01:37 +00:00
Austaras
375774d31e
fix(es): Check the syntax context of arguments
( #5174 )
2022-07-13 10:29:03 +00:00
magic-akari
de66b64aed
fix(es/compat): Preserve spans in object_rest_spread
( #5082 )
2022-07-02 03:50:30 +00:00
magic-akari
fa68cbd74a
refactor(es/module): Implement new module transformer ( #4758 )
2022-06-27 12:32:06 +00:00
LongYinan
db9f7a5ad4
chore(ci): Fix publish build on Windows ( #4970 )
2022-06-14 15:58:10 +00:00
LongYinan
35806385ea
perf(es/minifier): Make more things parallel and reduce call stacks ( #4915 )
2022-06-14 05:03:09 +09:00
magic-akari
594089488b
feat(es/minifier): Drop new
token if possible ( #4932 )
2022-06-11 05:27:13 +00:00
Donny/강동윤
814f72f224
fix(es/decorators): Fix syntax context of decorated classes ( #4905 )
2022-06-08 05:00:22 +00:00
Austaras
83ae6a1f1f
feat(es/minifier): Remove extra parens in BinExpr
( #4878 )
2022-06-05 05:52:22 +00:00
Donny/강동윤
a487fc1d28
refactor(es/transforms): Remove concurrent
( #4808 )
2022-05-26 15:58:19 +00:00
Donny/강동윤
e4dee1ed33
fix(es/minifier): Consider parameters while detecting pure calls ( #4748 )
2022-05-23 13:04:11 +00: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
Austaras
b3b6fd448c
feat(es/minifier): Remove duplicate control flow in nested blocks ( #4569 )
2022-05-08 13:07:58 +09:00
Austaras
8cf3ddda6c
feat(es/minifier): Improve handling of switches ( #4260 )
2022-04-21 10:00:25 +00:00
Donny/강동윤
8886a4b572
fix(es/minifier): Respect dead_code
( #4328 )
2022-04-14 06:00:43 +00:00
那里好脏不可以
37a8c90750
chore(*): Typo + fomatting ( #4304 )
2022-04-11 18:45:58 +00:00
Austaras
720244fff9
fix(es/module): Support top-level await in dynamic imports ( #4277 )
2022-04-08 15:28:10 +09:00
Alexander Akait
f39d3aca4d
feat(es/ast): Add raw
to Num
( #4245 )
2022-04-05 12:46:35 +00:00
Alexander Akait
634d732803
feat(es/ast): Add raw
to Str
( #4071 )
2022-03-22 07:54:08 +00:00
magic-akari
c7f2bdb813
feat(es/compat): Implement loose mode for async_to_generator
( #3870 )
2022-03-05 19:32:59 +00:00