Commit Graph

121 Commits

Author SHA1 Message Date
magic-akari
1e33dbab24
feat(es/modules): Support node interop (#5069) 2022-07-01 03:28:03 +00:00
magic-akari
ef543b1b22
fix(es/modules): Handle this in class methods (#5065) 2022-06-29 11:27:06 +00:00
magic-akari
e13364f976
fix(es/modules): Handle module references in binding idents (#5055) 2022-06-28 10:47:46 +00:00
magic-akari
2cc229e6fb
feat(es/modules): Optimize a dynamic import with a literal path (#5049) 2022-06-28 06:31:24 +00:00
magic-akari
fa68cbd74a
refactor(es/module): Implement new module transformer (#4758) 2022-06-27 12:32:06 +00:00
magic-akari
d736b31e08
fix(es/typescript): Preserve export = for AMD (#4995) 2022-06-18 09:31:08 +00:00
LongYinan
db9f7a5ad4
chore(ci): Fix publish build on Windows (#4970) 2022-06-14 15:58:10 +00:00
Donny/강동윤
4a27e6f84a
fix(es/helpers): Allow using external helpers with type: module (#4962) 2022-06-13 18:41:35 +00:00
Donny/강동윤
36a82ccfc9
feat(es/modules/amd): Convert ts import equals to normal AMD import (#4906) 2022-06-08 07:21:17 +00:00
Donny/강동윤
10f6849f7a
fix(es/modules/amd): Support export * as foo from 'foo' (#4904) 2022-06-08 03:30:54 +00:00
Donny/강동윤
f4c6a20654
fix(es/modules): Fix lazy option of common js (#4807) 2022-05-26 13:06:43 +00:00
OJ Kwon
2b03047cb0
fix(es/modules): Fix local scoped amd require (#4800) 2022-05-25 18:08:49 +00:00
Donny/강동윤
75bb8586cc
fix(es/modules): Adjust absolute path while rewriting imports (#4776) 2022-05-24 20:00:26 +09:00
Donny/강동윤
b8d2fb8546
feat(es/helpers): Import only used helpers (#4767) 2022-05-24 04:09:59 +00:00
Donny/강동윤
417b2182ce
fix(es/loader): Fix jsc.paths on windows (#4739) 2022-05-22 20:12:22 +00:00
Donny/강동윤
d9bb59a8cb
fix(es/modules/cjs): FIx detection of exported names (#4737) 2022-05-21 19:55:35 +00:00
OJ Kwon
886585b90e
feat(es/modules/amd): Support local-scoped amd requires (#4727) 2022-05-21 18:32:34 +00:00
brightwu
7ce572b497
fix(es/modules): Fix reassignment of exported vars (#4688) 2022-05-17 11:06:03 +00:00
Daniel Grant
49c40afb7e
fix(es/modules): Fix handling of import.meta.url (#4670) 2022-05-15 16:44:02 +00:00
Donny/강동윤
20692cdff1
fix(es/modules): Fix jsc.paths (#4620) 2022-05-12 04:14:51 +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
RiESAEX
086840956d
fix(es): Use unresolved_mark (#4573) 2022-05-08 09:19:26 +00:00
Donny/강동윤
f3b262e340
fix(es/modules): Preserve extensions (#4524) 2022-05-04 15:07:28 +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/강동윤
5c1ce0ba05
fix(es/modules/cjs): Fix order of statements (#4361) 2022-04-18 10:57:55 +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
RiESAEX
ea0de90137
fix(es/codegen): Emit sourcemap of key-value properties correctly (#4166) 2022-03-27 14:26:53 +09:00
Alexander Akait
634d732803
feat(es/ast): Add raw to Str (#4071) 2022-03-22 07:54:08 +00:00
meskill
6ac7934017
fix(es/module/cjs): Fix conflict of a local export and exports-alls (#4089) 2022-03-19 09:56:14 +00:00
Donny/강동윤
d0f687bf44
feat(es/module/cjs): Support import.meta.url (#4087) 2022-03-19 07:05:11 +00:00
Donny/강동윤
22d005e224
fix(es/modules): Fix sourcemap, really (#4074) 2022-03-18 08:26:58 +00:00
Donny/강동윤
9458f08092
feat(es/modules): Support namespaced reexports (#4073) 2022-03-18 03:03:02 +00:00
Donny/강동윤
834cd4f7b6
fix(es/modules): Use correct span for ExportAlls (#4038) 2022-03-16 17:10:47 +09:00
magic-akari
dc457b4883
fix(es/module): Use correct return values for suffix update expressions (#3927) 2022-03-09 23:14:06 +09:00
magic-akari
8559fc9623
fix(es/module): Fix exported vars with bigint values (#3909) 2022-03-09 06:30:28 +00:00
magic-akari
534fc52a72
fix(es/module): Make exported vars follow specification (#3906) 2022-03-08 09:23:40 +00:00
Guillaume Malette
f575b1bc48
fix(es/module/cjs): Allow re-exports to be lazy (#3856) 2022-03-07 20:39:45 +00:00
Donny/강동윤
8e30d83d14
fix(es/module): Revert fix for jest.spyOn 2022-03-07 18:21:14 +09:00
Donny/강동윤
a65755fd9a
fix(es/module): Fix jsc.paths (#3879) 2022-03-06 12:33:48 +00:00
Donny/강동윤
6a005fc15a
fix(es/module): Visit the value of class properties (#3877) 2022-03-06 14:03:08 +09:00
Guillaume Malette
1f70fa6e08
feat(es/module/cjs): Support regex-based patterns for lazy config (#3704) 2022-03-05 07:56:18 +00:00
Donny/강동윤
9546eefe72
fix(es/module): Fix jest.spyOn (#3845) 2022-03-04 07:04:56 +00:00
underfin
557a520a6d
feat(es/modules): Support system js (#3659) 2022-03-01 05:18:55 +00:00
magic-akari
ad0a8539e0
feat(es/module): Workaround stack overflow bug of JavaScriptCore related to too many exports (#3763) 2022-02-27 09:59:40 +00:00
Donny/강동윤
47ccff8a7c
feat(es/parser): Provide more api for reducing binary size (#3747) 2022-02-26 09:29:05 +09:00
Donny/강동윤
1094018153
perf(es/modules): Reduce usage of generics (#3743) 2022-02-25 19:46:46 +00:00
Donny/강동윤
fd223793e8
refactor(es/transforms): Use recommended ast apis (#3735) 2022-02-25 06:50:19 +00:00
Donny/강동윤
135acf3b42
refactor(es): Improve ast apis (#3690) 2022-02-23 05:37:07 +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
magic-akari
fa0216d908
fix(es/modules): Hoist named exports (#3479) 2022-02-09 04:50:33 +00:00
RiESAEX
ff6eb272a0
fix(es/modules): Use correct StrKind after rewriting import path (#3489) 2022-02-09 12:01:22 +09:00
RiESAEX
745604b26d
fix(es/modules): Allow using a dynamic import with an expression from another import (#3450) 2022-02-05 14:49:13 +09:00
Donny/강동윤
2c99ca1bab
fix(es/modules): Fix span of imports (#3418)
swc_ecma_transforms_module:
 - `common_js`: Use original span with the syntax conext of an import specifier.
2022-02-01 22:37:42 +09:00
RiESAEX
1dcc188dd8
fix(es/modules): Allow using dynamic import with a name from another import (#3390) 2022-01-28 06:36:20 +00:00
padorang684
b2bf38d025
fix(es/module): Remove .jsx file extension (#3334) 2022-01-21 14:10:33 +00:00
Donny/강동윤
9dd0647e3a
feat(es/ast): Improve AST api for plugin authors (#3281)
swc_ecma_ast:
 - Improve API for AST creation.
2022-01-16 16:56:41 +09:00
Donny/강동윤
357a350390
refactor(*): Cleanup (#3274) 2022-01-15 16:43:34 +09:00
Donny/강동윤
2690742db0
refactor(es/transforms): Cleanup (#3273) 2022-01-15 15:36:40 +09:00
Donny/강동윤
978de5943e
chore(ci): Configure clippy (#3250) 2022-01-13 23:06:11 +09:00
Guillaume Malette
9565149539
fix(es/modules): Fix lazy import handling (#3211)
swc_ecma_transforms_module:
 - `common_js`: Correctly track lazy imports. (Closes #3081)
2022-01-11 07:13:12 +00: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
Sosuke Suzuki
07c0489575
feat(es/ast): Add ModuleExportName (#3048)
swc_ecma_ast:
 - Allow using string as import/export specifiers.
2022-01-03 08:44:11 +00:00
Donny/강동윤
333acb5622
doc(es/ast): Improve rustdoc (#3142)
swc_ecma_ast:
 - Document `Str.kind`.
 - Document `TpleElement.cooked`.
2021-12-29 16:01:15 +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/강동윤
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
Jeremy Grieshop
6f05c101f1
fix(es/transforms/module): Fix overriding of export * (#2883)
swc_ecma_transforms_module:
 - Emit correct value for `_exportNames`. (Closes #2101)
2021-11-28 09:08:02 +00:00
OJ Kwon
43e89fd0c8
fix(es/transforms/module): Fix detection of helpers to inject (#2868) 2021-11-26 15:00:44 +00:00
Donny/강동윤
1d028fe940
fix(es): Fix paths support (#2712)
swc_ecma_loader:
 - `TsConfigResolver`: Use `baseUrl` on exact match while resolving. (Closes #2126)

swc_ecma_transforms_module:
 - Add `import_rewriter`.
 - `NodeImportResolver`: Don't strip extension if it's a directory. (Closes #2269)
 - `NodeImportResolver`: Don't strip extension if it's not `.ts`, `.js` nor `.tsx`.

swc:
 - Use `import_rewriter`. (Closes #1943, Closes #2523)
 - Update test (Closes #2715)
2021-11-11 16:57:31 +09:00
Donny/강동윤
2b2f6955f2
refactor: Flatten ecmascript (#2708) 2021-11-10 19:00:54 +09:00