Commit Graph

31 Commits

Author SHA1 Message Date
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/강동윤
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/강동윤
3d944656bf
refactor(es): Make compilation faster (#3749) 2022-02-26 06:41:14 +00:00
Donny/강동윤
68a155165b
fix(es/ast): Fix definition of Expr::TsInstantiation (#3657) 2022-02-21 13:03:11 +00:00
Austaras
2cb66ae075
refactor(es/ast): Change definition of optional chaining expressions (#3645) 2022-02-21 07:12:09 +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
LongYinan
9608605772
build(node-swc): Fix GLIBC < 2.18 compatible issues and android arm binary loading issue (#3314) 2022-01-20 02:21:24 +00:00
Austaras
9e636c7e58
refactor(es): Add visit_obj_and_computed macro (#3304) 2022-01-19 23:11:52 +09:00
Donny/강동윤
e8670b3383
refactor(es): More fix for clippy (#3280) 2022-01-16 14:33:06 +09:00
Donny/강동윤
357a350390
refactor(*): Cleanup (#3274) 2022-01-15 16:43:34 +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/강동윤
08920189ba
fix(webpack/ast): Expose fields of AstOutput (#3046) 2021-12-15 19:08:07 +09:00
Donny/강동윤
24179bd9be
fix(webpack/ast): Handle typescript (#3045)
swc_webpack_ast:
 - Add `proces_file`.
 - Add support for typescript.
2021-12-15 18:33:35 +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
Donny/강동윤
15ea98bf65
fix(webpack/ast): Fix webpackAST (#3040)
swc_webpack_ast:
 - `reducer`: Flatten safe statements.
 - `reducer`: Preserve variables.
2021-12-14 17:28:51 +09:00
Donny/강동윤
4cf58528df
fix(webpack/ast): Fix webpackAST (#2979)
swc_estree_ast:
 - Fix more serialization.

swc_estree_compat:
 - Consider multi-byte characters.

swc_webpack_ast:
 - Preserve LHS of assignments if required.
2021-12-08 19:53:43 +09:00
Donny/강동윤
e48263b2f3
refactor(visit): Remove &dyn Node from Visit (#2984)
swc_visit_macros:
 - Remove `&dyn Node` from `Visit`.
 - Implement `VisitWith<V>` for `[T]`.
2021-12-07 14:34:16 +09:00
Donny/강동윤
74363e0357
fix(webpack/ast): Preserve span (#2971) 2021-12-04 23:24:18 +09:00
Donny/강동윤
2a01dd4b32
fix(webpack/ast): Reduce if statements (#2969) 2021-12-04 19:28:18 +09:00
Donny/강동윤
c346f12b32
fix(estree): Fix serialization of ObjectMethod (#2961)
swc_estree_ast:
 - Fix serialization of `ObjectMethod` for `acorn`.

swc_webpack_ast:
 - `ast_reducer`: Remove unused getter/setter properties.
2021-12-03 23:14:12 +09:00
Donny/강동윤
4008a65b1e
fix(webpack/ast): Preserve more arguments of define calls (#2960) 2021-12-03 21:22:38 +09:00
Donny/강동윤
eda514bcc5
fix(webpack/ast): Fix amd support (#2959)
swc_webpack_ast:
 - `ast_reducer`: Preserve array literals in `define` calls.
2021-12-03 20:51:48 +09:00
Donny/강동윤
1eb62dc201
fix(webpack/ast): Remove more string literals (#2957) 2021-12-03 18:54:28 +09:00
Donny/강동윤
4539b3a610
fix(webpack/ast): Don't remove comparison of process.env.NODE_ENV (#2937) 2021-12-01 23:18:19 +09:00
Donny/강동윤
667dd1e95e
fix(webpack/ast): Fix ast reducer (#2936)
swc_webpack_ast:
 - Preserve string literals in `require`
2021-12-01 21:54:55 +09:00
Donny/강동윤
9f5fc11a8f
fix(webpack/ast): Fix handling of define (#2935)
swc_webpack_ast:
 - Support `define` calls with `require` .
2021-12-01 21:25:46 +09:00
Donny/강동윤
18d9fd91f9
fix(webpack/ast): Fix span of null literals (#2925)
swc_webpack_ast:
 - Preserve original spans for injected `null` literals
2021-12-01 15:31:56 +09:00
Donny/강동윤
854b598e94
fix(webpack/ast): Improve ast reducer (#2917) 2021-11-30 18:16:05 +09:00
Donny/강동윤
32b68ef5d0
fix(webpack/ast): Fix ast reducer (#2914)
swc_webpack_ast:
 - Implement more rules.
 - Test using typescript test suites.
2021-11-30 10:04:08 +09:00
Donny/강동윤
c2bbdbe9d6
feat(webpack): Add ast reducer (#2875)
swc_estree_compat:
 - Fix stack overflow related to object patterns.

swc_webpack_}ast:
 - Implement AST reducer.
2021-11-26 15:04:41 +09:00