Commit Graph

47 Commits

Author SHA1 Message Date
Donny/강동윤
a9fe1d2d22
perf(es/ast): Shrink size of Expr (#7041)
**Related issue:**

 - Closes https://github.com/swc-project/swc/issues/7019.
2023-03-09 13:34:11 +00:00
Donny/강동윤
e946c43f4e
fix(es/resolver): Use type context for export = if it's unresolved (#6963)
**Related issue:**

 - https://github.com/dudykr/stc/issues/717.
2023-02-19 23:50:19 +09:00
Donny/강동윤
861d87cae6
fix(es/resolver): Resolve parameters correctly (#6890)
**Related issue:**

 - Closes https://github.com/swc-project/swc/issues/5622.
2023-02-01 15:49:08 +09:00
Donny/강동윤
82bd5c2041
feat(es/renamer): Rename synthesized identifiers even on eval (#6818)
**Related issue:**

 - Closes https://github.com/swc-project/swc/issues/5068.
2023-01-16 04:51:47 +00:00
Donny/강동윤
631dd7872b
feat(es/renamer): Support safari10 from the name mangler (#6801) 2023-01-13 05:00:13 +00:00
HeYunfei
29ba05d137
fix(es/resolver): Reset in_type flag correctly (#6597) 2022-12-08 08:40:40 +09:00
Donny/강동윤
0cee0e1af7
fix(es/visit): Visit TypeScript satisfies expressions (#6511) 2022-11-25 20:28:01 +09:00
Donny/강동윤
6b876c4c4f
fix(es/resolver): Resolve interfaces correctly (#6387)
**Related issue:**

 - https://github.com/dudykr/stc/pull/245.
2022-11-09 06:28:58 +00:00
Donny/강동윤
2737aea312
fix(es/resolver): Change order for switch cases (#6317)
**Related issue:**

 - Closes https://github.com/swc-project/swc/issues/6310.
2022-11-02 10:02:06 +00:00
Austaras
573418fc96
fix(es/resolver): Use a separate mark for the name of FnExpr (#5959) 2022-09-27 14:50:35 +09:00
Donny/강동윤
1a182ef8d9
perf(es): Optimize memory layout of AST (#5829) 2022-09-20 12:47:21 +09:00
Donny/강동윤
3eb1f4b2b1
chore(ci): Fix lints (#5462) 2022-08-12 13:13:35 +00:00
Austaras
9519e801ea
fix(es/resolver): Fix handling of block scoped functions (#5092) 2022-07-05 05:04:49 +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/강동윤
ea92a6ab8a
refactor(es/resolver): Prepare parallel resolver (#4957) 2022-06-13 15:52:15 +00:00
Donny/강동윤
a9f91dc797
fix(es/resolver): Hoist namespaces (#4902) 2022-06-07 23:42:19 +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
brightwu
e2da3ddc03
fix(es/resolver): Handle var after catch with the same name (#4772) 2022-05-24 16:53:13 +09:00
David Sherret
2745cb7949
fix(es/resolver): Ensure that a parameter type is resolved to parent (#4645) 2022-05-13 06:31:52 +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/강동윤
097ff1ddc1
fix(es/minifier): Fix with and NaN (#4596) 2022-05-10 03:21:43 +00:00
Donny/강동윤
56c3010f6b
fix(es/resolver): Fix more try catch issues (#4582) 2022-05-09 17:50:30 +09:00
Donny/강동윤
9e79f9ced6
fix(es/resolver): Fix handling of a complex try catch (#4574) 2022-05-08 10:12:50 +00:00
Donny/강동윤
13cc228262
doc(es/resolver): Add docs for top-level mark (#4560) 2022-05-07 08:42:46 +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/강동윤
f66229822c
fix(es/resolver): Fix handling of decorators (#4084) 2022-03-19 05:32:53 +00:00
Austaras
87a3c1c916
fix(es/resolver): Use correct context for identifiers after type parameters (#4000) 2022-03-13 21:42:24 +00: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/강동윤
2af5096e83
fix(es/resolver): Fix handling of for statements (#3446)
swc_ecma_transforms_base:
 - `resolver`: Visit the body of a for statement in a nested visitor.
2022-02-04 14:13:32 +09:00
Austaras
9e636c7e58
refactor(es): Add visit_obj_and_computed macro (#3304) 2022-01-19 23:11:52 +09:00
Donny/강동윤
9a898951bc
fix(es/resolver): Ignore names of jsx attributes (#3289)
swc_ecma_transforms_base:
 - Ignore names of jsx attributes. (Closes #2854)
2022-01-17 16:18:07 +09:00
magic-akari
f4b3cb714a
fix(es/resolver): Treat a switch statement as a block scope (#3275) 2022-01-15 17:20:17 +09:00
Donny/강동윤
2690742db0
refactor(es/transforms): Cleanup (#3273) 2022-01-15 15:36:40 +09:00
Austaras
f58b50bea7
refactor(es/ast): Change types of member-like expressions (#3178)
swc_ecma_ast:
 - Split `MemberExpr` into `MemberExpr` and `SuperPropExpr`.
 - Use `Box<Expr>` for `MemberExpr.obj`.
 - Use ad-hoc type for `MemberExpr.prop`.
 - Use ad-hoc type for `SuperPropExpr.prop`.
 - Use `Callee` instead of  `ExprOrSpread` for `CallExpr`.
 - Simplify types for meta property expressions.
2022-01-10 13:54:42 +00:00
Donny/강동윤
913c82a2ab
fix(es/lints): Fix incorrect duplicate binding error (#3194)
swc_ecma_transforms_base:
 - `resolver`: Fix resolving of `const` and `let`.

swc_ecma_lints:
 - `duplicate_bindings`: Don't mark ambient function declararions as a binding. (Closes #3193)
2022-01-05 11:59:10 +09:00
David Sherret
517662c9c2
fix(es/visit): Make noop_visit_type visit typescript nodes that executes at runtime (#3192) 2022-01-05 08:47:25 +09:00
Donny/강동윤
43c8cda31a
fix(es/renamer): Fix renamer (#3139)
swc_ecma_transforms_base:
 - `resolver`: Ignore named export with source.
 - `hygiene`: Ignore named export with source. (Closes #2924, Closes #3114)

swc_ecma_minifier:
 - Handle `export default` declarations as declaration instead of expressions. (Closes #2717)
 - Don't override already-processed identifiers. (Closes #2988)

swc_bundler:
 - Adjust the syntax context for named re-exports.
2021-12-29 13:44:48 +09:00
Austaras
38955c0c8d
refactor(es/ast): Change type or the key of ClassProp to PropName (#3038) 2021-12-15 16:21:30 +09:00
David Sherret
c8c73cb313
fix(es/typescript): Fix enums which reference themselves (#3000) 2021-12-10 10:30:26 +00:00
Donny/강동윤
0a637d6ce2
chore: Fix license issue (#3002) 2021-12-10 17:45:01 +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
David Sherret
4d993c26b6
fix(es/hygiene): Reduce renaming (#2938)
swc_ecma_transforms_base:
 - `hygiene`: Treat class methods and constructors as a scope.
2021-12-02 07:28:09 +00:00
Donny/강동윤
7a6bf424c5
fix(es/transforms/base): Fix ts_resolver (#2826)
swc_ecma_transforms_base:
 - `ts_resolver`: Hoist type aliases.
2021-11-21 16:31:12 +09:00
Donny/강동윤
9cd3d1610d
fix(es/transforms/base): Fix ts_resolver (#2824)
swc_ecma_transforms_base:
 - `ts_resolver`: Hoist interface declarations.
2021-11-21 15:47:38 +09:00
Donny/강동윤
2b2f6955f2
refactor: Flatten ecmascript (#2708) 2021-11-10 19:00:54 +09:00