HeYunfei
dabea71c44
fix(es/minifier): Preserve unused imported specifiers ( #6458 )
2022-11-17 00:52:19 +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/강동윤
e6b1dd4731
feat(es/testing): Add an option to test sourcemap ( #6079 )
2022-10-07 05:52:22 +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
Donny/강동윤
e16827cc9d
feat(es/minifier): Drop cycles in nested functions ( #5933 )
2022-09-22 13:54:49 +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/강동윤
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
Austaras
5a06271116
feat(es/compat): Add pure comments for generator and async transform ( #5463 )
2022-08-12 13:39:26 +00:00
Austaras
375774d31e
fix(es): Check the syntax context of arguments
( #5174 )
2022-07-13 10:29:03 +00:00
magic-akari
4d5783d9cd
feat(es/modules): Add pure annotations to interop functions ( #5087 )
2022-07-03 05:54:07 +00:00
magic-akari
1e33dbab24
feat(es/modules): Support node interop ( #5069 )
2022-07-01 03:28:03 +00:00
magic-akari
fa68cbd74a
refactor(es/module): Implement new module transformer ( #4758 )
2022-06-27 12:32:06 +00:00
Donny/강동윤
36d960c7e9
perf(es/hygiene): Make hygiene
faster ( #4952 )
2022-06-15 14:36:57 +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/강동윤
a6d404a8c2
chore(repo): Configure prettier
( #4523 )
2022-05-04 14:25:28 +00:00
Donny/강동윤
f30ffdf200
fix(es/decorators): Make legacy decorator identical to tsc
( #4496 )
2022-05-03 07:48:09 +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/강동윤
7e8f613272
feat(es/minifier): Enable conditionals
by default ( #4301 )
2022-04-12 02:12:10 +00:00
Donny/강동윤
4868c73d5b
fix(es/optimization): Don't create invalid sequence expressions ( #4285 )
2022-04-08 18:08:31 +00:00
Austaras
b1645f606d
fix(es/optimizer/simplifier): Collect idents in init first ( #4239 )
2022-04-04 12:23:15 +09:00
overlookmotel
073751f70d
fix(es/optimization): Support jsx in dce
( #4203 )
2022-03-31 00:54:20 +00:00
Alexander Akait
634d732803
feat(es/ast): Add raw
to Str
( #4071 )
2022-03-22 07:54:08 +00:00
Donny/강동윤
3a4704fe77
feat(es/transforms/base): Add paren_remover
( #4034 )
2022-03-15 20:07:04 +00:00
Austaras
112f428734
feat(es/compat): Add pure comments for class fields keys ( #3939 )
2022-03-10 07:13:58 +00:00
Donny/강동윤
3d43a9b69d
feat(es/testing): Print comments in test_fixture
( #3920 )
2022-03-09 02:54:27 +00:00
William Tetlow
782a874696
fix(es/transform/optimization): Prevent inlining of vars used as RHS in logical expressions ( #3907 )
2022-03-07 20:18:48 +00:00
magic-akari
c7f2bdb813
feat(es/compat): Implement loose mode for async_to_generator
( #3870 )
2022-03-05 19:32:59 +00:00
Austaras
6f076e4927
feat(es/transform): Unify logic for handling class properties ( #3766 )
2022-03-05 06:46:09 +00:00
Austaras
14155eb0e7
feat(es/compat): Implement loose mode for class_properties
( #3722 )
2022-02-27 00:09:02 +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/강동윤
1ea965cecb
fix(es/parser): Drop outdated options ( #2974 )
...
swc_ecma_parser:
- Drop flags in `EsConfig`.
- Drop flags in `TsConfig`.
- Drop unused variants from `SyntaxError`.
2021-12-05 17:33:34 +09:00
David Sherret
67280b6fb0
fix(es/typescript): Run resolver
before typescript::strip
( #2951 )
...
swc_ecma_transforms_base:
- `resolver`: Handle some typescript nodes.
swc_ecma_transforms_typescript:
- `strip`: Use identifier span hygiene information for stripping types.
2021-12-04 02:35:16 +00:00
David Sherret
beb2c73c2c
fix(swc/hygiene): Prefer not renaming top level variables ( #2940 )
...
swc_ecma_transforms_base:
- `hygiene`: Use concept of depth to prevent renaming top level nodes.
2021-12-04 01:55:27 +09:00
Austaras
dc58122283
feat(es/transforms/compat): Add more loose mode ( #2611 )
...
swc_ecma_transforms_compat:
- `computed_properties`: Add loose mode.
- `template_literals`: Add loose mode.
- `object_spread`: Add loose mode.
- `optional_chaining`: Add loose mode.
- `nullish_coalescing`: Add loose mode.
- `optional_chaining`: Fix #2734 .
2021-11-15 14:31:21 +09:00
Donny/강동윤
2b2f6955f2
refactor: Flatten ecmascript
( #2708 )
2021-11-10 19:00:54 +09:00