강동윤
23aebacade
fix(bundler): Fix bundler ( #1318 )
...
swc_bundler:
- Use two-context system properly.
- Remove old logic.
- keywords: Handle assignment pattern property.
- keywords: Handle shorthand property.
- keywords: Handle identifiers in declarations.
swc_ecma_transforms_typescript:
- Do not remove import if there's non-type usage. (Related to denoland/deno#8978 )
swc_ecma_transforms_optimization:
- dce: Handle new expression correctly.
2021-01-11 19:38:20 +09:00
강동윤
dc0d226684
Update cargo.toml
2021-01-05 21:55:00 +09:00
강동윤
842b6f953c
fix(ecmascript/transforms): Fix dce ( #1301 )
...
swc_bunder:
- Fix `keywords` pass.
swc_ecma_codegen:
- Ensure that the code generator handles unicode characters properly. (denoland/deno#8925 )
swc_ecma_parser:
- Ensure that the parser handles unicode characters properly. (denoland/deno#8925 )
swc_ecma_transforms:
- Fix dce.
2021-01-05 18:45:26 +09:00
강동윤
76d9e2a9df
feat(ecmascript/transforms): Split into multiple crates. ( #1311 )
2021-01-05 14:29:52 +09:00
강동윤
ba13db54db
fix(bundler): Fix remaining bugs ( #1296 )
...
swc_bundler:
- Allow `export *` and `import` from same source. (denoland/deno#8828 , denoland/deno#8725 )
- Handle contextual keywords. (denoland/deno#8680 )
- Prevent duplicated identifiers. (denoland/deno#8725 )
swc_ecma_transforms:
- dce: Preserve tags in tagged template literals. (denoland/deno#8746 )
- dce: Handle throw statement correctly. (denoland/deno#8736 )
2020-12-28 19:53:40 +09:00
강동윤
b66ee58ee3
fix(bundler): Fix statement ordering issue ( #1264 )
...
swc_bundler:
- Reduce binary size by reducing usage of visitor / folders.
- Handle `export *` and `export { default }` from same source. (denoland/deno#8530 , denoland/deno#8679 )
- Fix ordering of statements. (denoland/deno#8545 )
- Sort statements in wrapped modules. (https://github.com/denoland/deno/issues/8211#issuecomment-741070299 )
- Exclude default export while handling `export *`.
- Exclude `export { default }` and `export { foo as default }` while handling `export *`.
- Make statements from same module to be injected together. (denoland/deno#8620 )
swc_ecma_transforms:
- fixer: Handle assignments in the callee of `new` correctly.
- fixer: Handle seqence expression in the callee of `new` correctly.
2020-12-27 19:02:41 +09:00
강동윤
6941f29943
fix(swc): Fixes for typescript type checker ( #1146 )
...
swc_ecma_codegen:
- Fix codegen of `TsConstructorSignature`.
- Fix codegen of `TsIndexSignature`.
- Fix codegen of type parameters in arrow expressions.
- No panic on dummy span.
swc_ecma_parser:
- Parse optoinal method correctly.
swc_ecma_transforms:
- resolver: Handle type parameters in arrow expressions.
2020-12-27 18:18:30 +09:00
강동윤
8a8db58f1c
fix(ecmascript): Fix bugs related to string literals ( #1287 )
...
swc_ecma_ast:
- Add `Str.kind`.
swc_ecma_transforms:
- Fix quotes in template literals. (#1280 )
swc_ecma_codegen:
- Fix escape of single quotes. (#1259 )
- Fix codegen of wrong escapes. (#1276 )
swc:
- Ensure that #1271 is about napi's deserialization.
2020-12-22 04:27:18 +09:00
강동윤
ccf4c2b12c
feat(fixer): Handle ?? properly ( #1270 )
...
swc_ecma_transforms:
- Handle `??` properly. (denoland/deno#8722 )
2020-12-12 17:45:54 +09:00
강동윤
03f9b93f58
Fix bundler ( #1247 )
...
swc_bundler:
- Handle indirect wrapped es modules. (denoland/deno#8597 , denoland/deno#8625 )
- Respect `export { foo }`. (denoland/deno#8626 )
swc_ecma_parser:
- Allow `??=`, `||=`, `??=` in non-ts modules. (denoland/deno#8627 )
swc_ecma_transforms:
- Make `hygiene` check if a variable with expanded name exists. (denoland/deno#8620 )
- Handle `??=` correctly.
2020-12-09 14:23:44 +09:00
강동윤
2e29d78281
fix: Decorator metadata ( #1248 )
...
swc_ecma_transforms:
- Emit proper typename for `design:type` used with enum. (#1160 )
2020-12-04 05:03:26 +09:00
강동윤
faa1c5f4e5
Fix bugs ( #1241 )
...
swc_ecma_codegen:
- Print multiline string correctly. (#1233 )
swc_ecma_transforms:
- `optional_chaining`: Ensure that #1149 is fixed. (#1149 )
- `async_to_generator`: Remove method parameters. (#1215 , #1235 )
- `regenerator`: Don't emit useless expressions. (#1125 )
- `regenerator`: Track `finally` properly. (#1125 )
spack:
- LRU cache for resolver.
2020-11-30 19:20:21 +09:00
강동윤
f8a1fb878d
fix(regenerator): Handle ternary correctly ( #1228 )
...
swc_ecma_transforms:
- Fix interaction between ternary and await. (#1216 )
testing_macors:
- Fix for `--lib` tests.
2020-11-24 02:54:18 +09:00
강동윤
25f2ff1a45
Bump version
2020-11-22 18:17:55 +09:00
강동윤
6888c69bda
Fix codegen: preserve input ( #1221 )
...
swc_ecma_codegen:
- Preserve input. (#1204 )
2020-11-21 02:04:29 +09:00
강동윤
4294b5e7ba
bundler: Fix issues ( #1212 )
...
swc_bundler:
- Bundler rework. (denoland/deno#6802)
- Reexports are not transitive. (denoland/deno#8246)
- Dependencies of module with circular dependency. (denoland/deno#8302)
- Order of injection between import vs export. (denoland/deno#8302)
- `export *` in wrapped modules. (denoland/deno#8308, denoland/deno#8399)
- `export { a as b }` in wrapped modules.
- Fix denoland/deno#8314.
- Fix denoland/deno#8325.
- Fix denoland/deno#8344.
- Make deno test verify exported names.
- Handle `export * from './foo'`.
swc_ecma_parser:
- Don't panic on private name in interface (Closes #1211 )
swc_ecma_transforms:
- dce: Prevent infinite loop
- Faster constant propagation pass.
2020-11-19 20:42:56 +09:00
Brad Dunbar
4327d91fe3
BigInt literal keys ( #1192 )
2020-11-15 01:22:35 +09:00
강동윤
af0b0a9ab1
Fix fixer ( #1207 )
...
swc_ecma_transforms:
- fixer: Don't unwrap paren if there's a comment for inner node.
2020-11-08 10:59:36 +09:00
강동윤
0a5e23f97c
bundler: Handle swc helpers ( #1199 )
...
swc_bundler:
- Handle helpers from `swc_ecma_transforms`.
swc_ecma_transforms:
- dce: Remove unused self-referential functions.
2020-11-05 09:53:18 +09:00
강동윤
f21a28844d
resolver: handle class declarations ( #1200 )
...
swc_ecma_transforms:
- resolver: Handle class declarations (denoland/deno_lint#463 )
2020-11-03 01:30:21 +09:00
강동윤
bae0eda8bd
Fix bundler ( #1194 )
...
swc_bundler:
- Remove wrong assertion. (denoland/deno#8148 )
- Remove wrong variables created on reexports. (denoland/deno#8188 )
swc_ecma_transforms:
- inlining: Treat usage as an argument as writes. (denoland/deno#8180 )
- inlining: Visit rhs of `||` and `&&`. (denoland/deno#8189 )
2020-10-30 14:49:02 +09:00
강동윤
a368f66e77
Bump version
2020-10-29 15:44:12 +09:00
강동윤
b2aec35eb6
Fix issues ( #1189 )
...
swc_bundler:
- Support emitting iife. (Closes #1184 )
swc_ecma_parser:
- Auto-detect script / module (Closes #1164 )
- lexer: Error recovery for strict mode and module mode.
- More error recovery logic for strict mode violation.
- Fix panic on invalid input. (Closes #1170 )
2020-10-28 21:20:11 +09:00
Frederik Wessberg
6b03c659ca
transforms: fix _typeof helper
2020-10-24 23:26:13 +09:00
Brad Dunbar
26c530b133
Invalid template escape in ES2018+ ( #1175 )
...
Co-authored-by: 강동윤 <kdy1997.dev@gmail.com>
2020-10-20 00:17:20 +09:00
강동윤
626c881c98
bundler: Fix ordering ( #1171 )
2020-10-16 22:26:18 +09:00
강동윤
a5e6242601
Bump version
2020-10-14 14:39:51 +09:00
강동윤
5a91ab994c
bundler: Fix dead code elimination ( #1157 )
...
swc_bundler:
- Fix dce bug. (#1156 )
swc_ecma_transforms:
- resolver: Ignore non-computed class properties.
- dce: Handle usages in class property initializers.
2020-10-12 00:36:44 +09:00
강동윤
f0ea70cb25
bundler: Allow importing and exporting from same module ( #1152 )
...
swc_bundler:
- Allow importing and exporting from same module. (#1150 )
2020-10-09 19:10:25 +09:00
강동윤
75a6211e2d
Fix hygiene and bundler ( #1144 )
...
swc_bundler:
- Change order of execution of modules with circular imports. (#1139 )
swc_ecma_transforms:
- hygiene: Fix handling of default in object patterns. (#1138 )
2020-10-07 14:55:02 +09:00
강동윤
0586c733e3
Fix bugs ( #1143 )
...
swc_ecma_transforms:
- fixer: Fix conditional expression in await expressions. (#1133 )
- optional_chaining: Fix call expression. (#1136 )
- hygiene: Fix codegen of computed keys. (#1140 )
2020-10-06 23:27:23 +09:00
강동윤
e4ddfcc899
export * as ns is part of ES2020 ( #1142 )
...
swc_bundler:
- Add direct support for `export * as ns from 'foo';`. (#1137 )
swc_ecma_transforms:
- Split `export` pass to `export_namespace_from` and `export_default_from`.
swc:
- Enable `export * as ns` for targets lower than es2020.
2020-10-06 20:48:29 +09:00
강동윤
aa9555865b
Fix bugs ( #1132 )
...
swc_ecma_transforms:
- Handle typescript class properties correctly. (#1122 )
- Handle optional chaining properly. (#1130 )
- Inject variables for nullisn coalescing in correct scope. (#1123 )
2020-10-04 21:59:19 +09:00
강동윤
205ce4ebe2
bundler: fix extra bugs ( #1127 )
...
swc_bundler:
- Prevent invalid output like `export * as helpers`
- Prevent stack overflow which occurs while bundling `https://deno.land/x/oak@v6.2.0/mod.ts `
swc_ecma_transforms:
- Migrate inlining pass to VisitMut
2020-10-04 00:19:35 +09:00
Nayeem Rahman
e4b8a0cc1e
fix(strip): Don't treat type-only exports as concrete references ( #1126 )
...
Co-authored-by: 강동윤 <kdy1997.dev@gmail.com>
2020-10-03 17:43:09 +09:00
강동윤
9879fa59c8
bundler: fix bugs ( #1105 )
...
swc_bundler:
- Correct lca for circular dependencies.
- Handle namespaced imports. (#1109 )
- Handle namespaced reexports. (#1110 )
- Handle shorthand properly. (#1111 )
- Implement `import.meta` (#1115 )
- Handle reexport mixed with imports correctly. (#1116 )
- Handle export default decls in computed-key modules.
- Remove all export * from. output. (#1118 )
- Handle export of class or function declaration in a computed module properly. (#1119 )
swc_ecma_transforms:
- Do not rename class members. (#1117 )
2020-10-02 11:07:40 +09:00
강동윤
ab8df21797
Fix optional chaining in argument position ( #1104 )
2020-09-24 15:14:30 +09:00
Nayeem Rahman
a9c3072b65
fix(strip): Fix Config::import_not_used_as_values ( #1101 )
...
Co-authored-by: 강동윤 <kdy1997.dev@gmail.com>
2020-09-23 22:52:47 +09:00
강동윤
73671ecd90
chores: Bump version of wasm ( #1102 )
2020-09-23 21:44:51 +09:00
강동윤
688d16f228
Import assertion / json modules ( #1100 )
...
swc_atoms:
- Add "assert".
swc_ecma_ast
- Add a field to an import declaration.
swc_ecma_parser:
- Parse assertions in import statements.
- Parse assertions in top-level dynamic imports.
- Parse assertions in non-top-level dynamic imports.
swc_ecma_transforms:
- Fix compilation.
2020-09-23 14:27:27 +09:00
강동윤
6c6f1aaaa3
Fixs bugs ( #1095 )
...
spack:
- fix resolver. (#1076 )
swc_common:
- preserve original sourcemap. (#1091 )
swc_ecma_transforms:
- optional chaining: `a?.b.c.d.e`. (#1092 )
- fixer: preserve parenthesis in `(a || b)()`. (#1093 )
- compat::es2015: Change order of passes (#1036 )
2020-09-22 16:39:00 +09:00
강동윤
4490e2551d
swc.rs ( #1085 )
...
Changes url from https://swc-project.github.io to https://swc.rs
2020-09-21 22:53:48 +09:00
강동윤
ac0a19c0e8
resolver: Handle pattern in lhs of for of/in correctly ( #1089 )
2020-09-21 12:04:46 +09:00
강동윤
24c597f097
bundler: fix for deno ( #1078 )
...
swc_bundler:
- Run fixer before returning bundles.
- Fix planning of circular imports.
- Support circular imports of root entries.
- Remark properly while merging complex imports mixed with exports.
2020-09-17 21:05:47 +09:00
강동윤
1af1840d01
Fix swc_bundler ( #1075 )
...
swc_bundler:
- Skip least_common_ancestor for roots.
- Correct planning for circular imports mixed with normal imports.
- Correct merging of circular imports mixed with normal imports.
2020-09-16 18:28:10 +09:00
강동윤
ff0db8f122
Typo
2020-09-15 14:28:53 +09:00
강동윤
bc82b5567e
typescript_strip: option to remove completely unused imports ( #1060 )
2020-09-15 14:25:13 +09:00
강동윤
4d5a0dacec
resolver: Correctly set in_type ( #1071 )
2020-09-12 23:56:10 +09:00
강동윤
8a0172912e
cjs: Fix import order ( #1069 )
2020-09-12 21:52:37 +09:00
강동윤
f029115914
resolver: No additional scope for function child ( #1070 )
2020-09-12 19:23:06 +09:00
강동윤
5c76aea82b
Fix resolver ( #1064 )
...
swc_ecma_transforms:
- resolver: properly handle let and const
- resolver: handle catch parameters
- resolver: handle parameter properties
swc_ecma_visit:
- reduced compile time of debug build
2020-09-11 23:33:36 +09:00
강동윤
dc4c92c9da
common_js: Change order of exports ( #1057 )
...
swc_ecma_transforms:
- Update order of imports and exports (#1043 )
2020-09-11 10:21:07 +09:00
강동윤
aec155b58f
resolver: Fix handling of constructor parameters ( #1056 )
2020-09-10 22:56:35 +09:00
강동윤
e2546e0100
resolver: Handle constructor properly ( #1054 )
2020-09-10 10:48:26 +09:00
강동윤
3a26d3d34d
Do not rename keywords in meta properties ( #1053 )
2020-09-09 15:16:44 +09:00
강동윤
9be8bf671d
fixer: Handle conditional expression in callee ( #1051 )
2020-09-09 12:26:10 +09:00
강동윤
82ae71faa1
Fix ts_resolver ( #1049 )
2020-09-08 20:45:58 +09:00
강동윤
98f6e1dd57
Remove wrong assertion ( #1041 )
2020-09-07 19:25:11 +09:00
강동윤
57112fc42b
Improve transforms ( #1035 )
...
swc_ecma_transforms:
- Fix `this` in optional chaining expression. (https://github.com/Brooooooklyn/swc-node/issues/62 )
- Optimize typescript stripper
- Optimize fixer
2020-09-06 19:47:15 +09:00
강동윤
eb2162cbd2
Fix stack overflow ( #1032 )
...
swc_ecma_codegen:
- Fix codegen of large binary expressions.
swc_ecma_parser:
- Fix stack overflow while parsing large binary expressions.
swc_ecma_transforms:
- typescrip::strip: Fix stack overflow while handling large binary operations.
- hygiene: Fix stack overflow by migrating it to `VisitMut`.
- hygiene: Improve performance.
- fixer: Fix stack overflow by migrating it to `VisitMut`.
- resolver: Migrate to `VisitMut`.
2020-09-06 15:09:02 +09:00
강동윤
6524802ae5
fixer: Handle binary expression in callee of new ( #1030 )
2020-09-04 17:31:02 +09:00
강동윤
108b22c0d6
Fix block scoping ( #1029 )
...
swc_ecma_transforms
- block_scoping: Handle this (#1021 )
- block_scoping: Handle variable mutation in for loops (#1022 )
2020-09-04 16:46:59 +09:00
강동윤
3d63798c9e
Handle dynamic imports in non-es6 modules ( #1028 )
2020-09-04 16:18:57 +09:00
강동윤
8a01e2b7b6
Fix spack ( #1016 )
...
swc_ecma_transforms:
- Add tests for #898
- dce preserves `export * from 'foo';`
swc_bundler:
- Fix some concurrency bugs
- Run dce only once
- Handle `export * from 'foo'`
- Handle namespace imports with computed key
- Add some unit tests for `plan`
- Handle export default decl
- Handle simple coomon dependencies properly
2020-09-03 22:45:42 +09:00
강동윤
a2960810ac
Add BigInt literal type ( #1020 )
2020-09-03 10:50:13 +09:00
강동윤
578d64a398
Support jsx pragma ( #1015 )
...
swc_ecma_transforms
- Support jsx pragma (#107 , #838 )
2020-08-30 20:32:45 +09:00
LongYinan
b443a1e372
Test Reflect.metadata existed before use it ( #1011 )
...
Co-authored-by: 강동윤 <kdy1997.dev@gmail.com>
2020-08-30 13:30:50 +09:00
강동윤
99981f70c7
Add customizable api ( #1006 )
2020-08-27 20:35:28 +09:00
강동윤
b25ccc006c
Improve performance ( #993 )
2020-08-26 20:50:18 +09:00
강동윤
511dc54961
Fix codegen of VisitMut for Option ( #996 )
...
swc_visit:
- Fix codegen of VisitMut for Option
2020-08-25 16:29:11 +09:00
강동윤
0a83809b2a
Improve type resolver ( #994 )
2020-08-24 18:48:54 +09:00
강동윤
e3faea25b6
Improve performance of swc ( #992 )
...
swc_ecma_parser:
- Make macros uses match instead of `PartialEq`
swc_ecma_codegen:
- Move panic condition
2020-08-24 10:42:12 +09:00
강동윤
c475ab7f92
Bump versions
2020-08-21 20:06:37 +09:00
강동윤
e6191447fe
Typescript 4.0 ( #982 )
...
swc_ecma_parser:
- Add support for optional tuple element (#978 )
2020-08-21 19:31:46 +09:00
강동윤
53338fc0c3
Resolver for types ( #979 )
...
swc_ecma_transforms:
- Add ts_resolver
2020-08-21 16:25:09 +09:00
강동윤
3262052e33
Improve performance and reduce binary size ( #973 )
...
spack:
- Optimize resolver
swc_bunder:
- Parallize merging of reexports
- Remove useless `clone`s
swc_ecma_utils:
- Migrate DropSpan to VisitMut
swc_ecma_transforms:
- Migrate simple transforms to VisitMut
- Ignore types to reduce binary size
- Hide actual types so that we can optimize it in future without breaking change
swc_visit:
- Apply transforms for vector in-place
- Apply transforms for box in-place
2020-08-19 01:29:49 +09:00
Bartek Iwańczuk
7a13aabeb7
remove codegen::Handlers ( #974 )
2020-08-17 21:09:12 +09:00
강동윤
28398280f7
Improve spack ( #972 )
...
swd_bundler:
- Handle reexports
spack:
- Do not transform files from node_modules
2020-08-17 15:04:08 +09:00
강동윤
bceda220fa
JsDoc parser ( #923 )
2020-08-14 18:20:25 +09:00
강동윤
e2e5f5eba3
Bump version
2020-08-14 15:09:09 +09:00
강동윤
01aeec39ca
hygiene: No ref-ref conflict ( #963 )
...
swc_ecma_transforms:
- Allow referencing global idents even when it's injected (Closes #962 )
2020-08-14 15:08:36 +09:00
강동윤
7204b104a7
Decorators on parameter properties ( #961 )
...
swc_ecma_transforms:
- Support parameter decorators on properties without a value (#960 )
2020-08-13 23:13:21 +09:00
강동윤
a62af5f38f
Allow optional constructor property parameters ( #959 )
...
swc_ecma_transforms:
- Handle optional constructor property parameters properly (#958 )
2020-08-13 11:47:33 +09:00
강동윤
2fedf32747
swc_bundler ( #943 )
...
swc_bundler:
- Splitted from spack
swc_ecma_parser:
- Fix unexpected eof problem which occurs if log level is trace
swc_ecma_transforms:
- Fix bugs of dce pass
spack:
- Support cyclic dependencies
2020-08-12 22:18:47 +09:00
LongYinan
4ab3c58f6a
Strip TypeScript class properties without value assigned ( #956 )
...
Co-authored-by: 강동윤 <kdy1997.dev@gmail.com>
2020-08-11 01:58:45 +09:00
LongYinan
dde9defbe4
Fix typescript strip in class properties pass ( #954 )
...
Co-authored-by: 강동윤 <kdy1997.dev@gmail.com>
2020-08-10 20:33:25 +09:00
강동윤
e1f5d681e3
Fix typescript class properties pass ( #951 )
2020-08-10 01:22:15 +09:00
강동윤
1315d58059
Fix bugs ( #949 )
...
swc_ecma_parser:
- Allow `in` in class properties (#944 )
- Make `delete` with optional chaining valid (#947 )
swc_ecma_transforms:
- Add a `typescript_class_properties` pass (#930 )
2020-08-09 16:45:00 +09:00
LongYinan
26f49099aa
Fix metadata emitted in parameters decorator ( #948 )
2020-08-09 14:18:15 +09:00
LongYinan
f92516867f
Fix parameters decorator metadata ( #946 )
...
Co-authored-by: 강동윤 <kdy1997.dev@gmail.com>
2020-08-08 11:34:26 +09:00
강동윤
951d52ec55
Fix target, target ( #945 )
2020-08-08 01:30:15 +09:00
강동윤
0989e73a99
Metadata for typescript decorator ( #939 )
...
swc_ecma_transforms:
- Allow emitting decorator metadata (#666 , #919 )
swc:
- change order of passes to allow decorator using type informations
2020-08-06 21:23:34 +09:00
강동윤
969fe6ec32
Spack ( #937 )
...
spack:
- Always inline `NODE_ENV` before analyzing imports
- implements conditional requires (#884 )
2020-08-06 14:55:16 +09:00
강동윤
42554d1194
Fix fixer ( #933 )
...
swc_ecma_transforms:
- fixer: Preserve paren around computed constructor (#931 )
2020-08-04 12:15:38 +09:00
강동윤
2de59759de
Reduce size ( #928 )
...
Reduce binary size and make some dependencies optional for deno
2020-08-04 01:33:23 +09:00
강동윤
54e0bfd878
Update swc_ecma_utils ( #927 )
2020-08-03 00:47:23 +09:00
강동윤
d2b8916f9f
Fix more typescript bugs ( #924 )
...
swc_ecma_parser:
- Fix parsing of binding identifier `await`
swc_ecma_transforms:
- More tests for typescript::strip
- Handle export declare class properly
- Remove declared variables
- Fix enums in if statement
- Fix sequence expression in class member key
- Fix await in extend-clause
- Fix optional array pattern
- Fix optional object pattern
2020-08-02 15:06:22 +09:00
강동윤
db0a56514d
Remove TsIndexSignature from typescript::strip ( #922 )
2020-08-01 21:32:11 +09:00
LongYinan
0a7f3a28ee
super() should be first ( #918 )
...
Co-authored-by: 강동윤 <kdy1997.dev@gmail.com>
2020-08-01 00:55:13 +09:00
강동윤
0ac55ae68b
Improve ux for rust users ( #909 )
...
testing:
- Remove dependency on relative_path
swc_common:
- Span's byte positions are now self-contained and `GLOBALS` is not required while parsing.
- Changed `Comments` into a trait.
- Provide single-threaded implementation of `Comments`
- Cargo feature `tty-emiiter` (To remove tty related stuffs )
- Cargo feature `sourcemap` (To remove sourcemap for web assets)
- Removed dependency on dashmap
swc_ecma_parser:
- No duplicated comments.
- Removed dependency on once_cell and regex
- Add a test suite to visualize and test span of nodes.
swc_ecma_utils:
- Removed dependency on parser
swc:
- Remove dependency on derive_more and path-clean
- Add multi-threaded implementation of `Comments`
swc_ecmascript:
- A new crate contains `ast`, `codegen`, `parser`, `utils`, `visit`.
2020-07-31 18:49:07 +09:00
Bartek Iwańczuk
9cb32cbb75
fix: readonly is not stripped from private prop ( #916 )
...
swc_ecma_codegen:
- Fix printing logic of literals and template literals
- Fix printing of hex
swc_ecma_parser:
- Track raw string correctly
swc_ecma_transforms:
- typescript: Handle class properties (readonly)
- typescript: Handle enums inside function
Co-authored-by: 강동윤 <kdy1997.dev@gmail.com>
2020-07-30 22:40:43 +09:00
강동윤
de1f967d32
Store span of ?. in an optional chaining expression ( #907 )
...
Add OptChainExpr.question_dot_token
2020-07-28 02:15:04 +09:00
강동윤
891092caf2
Fix typescript stripper ( #905 )
...
swc_ecma_codegen:
- Fix codegen of optional catch parameters (#904 )
swc_ecma_transforms:
- Fix for nested catch clause
2020-07-28 00:55:28 +09:00
강동윤
ecd7b4decc
Implement more methods for codegen ( #902 )
...
swc_ecma_codegen:
- implement emit_private_property (Closes #903 )
2020-07-27 22:58:42 +09:00
강동윤
ea885df521
Fix bugs ( #901 )
...
swc_ecma_parser:
- Accept `export type * from '../typings'` (#896 )
swc_ecma_transforms:
- Ensure that swc does not duplicate classes (#879 )
2020-07-27 20:21:52 +09:00
강동윤
53b09aa356
Fix decorators ( #899 )
...
swc_ecma_transforms:
- typescript::strip: Preserve a class property if it has decorators
- decorators::legacy: Implement parameter decorator.
2020-07-26 17:07:24 +09:00
David Sherret
b72901b5e0
Support parsing declare properties ( #897 )
...
swc_ecma_ast:
- ClassProperty.declare
swc_ecma_parser:
- Parsing for declare class props.
- Error when parsing a private property with a declare modifier.
Co-authored-by: 강동윤 <kdy1997.dev@gmail.com>
2020-07-26 12:53:41 +09:00
강동윤
a1d33d023a
Improve ux using swc as a rust library ( #893 )
...
swc_ecma_parser:
- Improve parser's error reporting story
- Replace `Session`, `Handler`, `Emitter` with Parser.take_errors()
- Expose `Error`
- Remove useless lifetime parameters
2020-07-25 20:26:04 +09:00
강동윤
c7a5d5fef9
Fix class hygiene issue related to class properties ( #892 )
...
swc_ecma_transforms:
- fixed hygiene bug of class_properties pass
2020-07-24 22:02:29 +09:00
강동윤
9b8bfb2455
Use stable rustc ( #886 )
2020-07-24 02:18:22 +09:00
강동윤
c0917839a5
Add empty to class member ( #875 )
2020-07-05 20:10:33 +09:00
강동윤
f500e9528c
Parser for TypeScript 4.0 ( #867 )
...
- Allow rest in non-last elements in tuple type
- Allow labelled ts type element in tuple type
- More operators
2020-06-29 16:23:33 +09:00
강동윤
cae9286af0
Bump versions
2020-06-20 17:43:24 +09:00
강동윤
fe260a02e2
ES2020 ( #855 )
...
Adapt es2020. API is not changed, but config for merged proposals are now noop.
2020-06-20 15:09:57 +09:00
강동윤
92ce023171
Handle catch parameters in regenerator ( #854 )
2020-06-18 23:11:06 +09:00
강동윤
ff440157a0
Fix regenerator ( #851 )
...
swc_ecma_transforms:
- Fix regenerator scoping issue.
2020-06-18 17:04:49 +09:00
강동윤
66d42adf7e
spack: modules ( #848 )
...
spack:
- Better es6 module detection
- Recursive merging
- Support for common js modules
- Support for node js core modules
- Inject helpers
swc_ecma_transforms:
- Fix dce
2020-06-17 23:48:34 +09:00
강동윤
31020e46d8
spack: enhancement ( #845 )
...
- Handle modules (via swcrc)
- swc.bundle([conf1, conf2])
- Correct chunking
2020-06-15 23:28:15 +09:00
강동윤
fcef201695
spack: super-fast bundler ( #825 )
...
Version is alpha as it's not complete
2020-06-13 23:09:45 +09:00
강동윤
5022999600
regenerator: Handle yield* correctly ( #833 )
2020-06-10 19:39:12 +09:00
강동윤
3b1ebdd2e9
Allow using properties with legacy decorators ( #824 )
2020-06-06 15:30:40 +09:00
강동윤
c7e4783837
Fix ts enums ( #821 )
2020-06-04 01:45:23 +09:00
강동윤
291251e2df
Bump version
2020-06-02 20:13:18 +09:00
강동윤
0efba88e3f
Improve typescript parser ( #811 )
2020-06-02 19:22:41 +09:00
강동윤
e62ea09935
Test with real-world codes ( #806 )
...
The purpose of the commit is to prevent my mistake like the one in `v1.1.49`.
2020-05-28 22:23:53 +09:00
강동윤
9b316e68b6
Fix new reserved_words pass ( #805 )
2020-05-28 17:01:01 +09:00
강동윤
2b2e1c13cd
FIx block scoping pass ( #803 )
2020-05-28 13:08:05 +09:00
강동윤
283825c91a
Fix typescript_strip and handle reserved word ( #802 )
2020-05-28 12:00:34 +09:00
강동윤
f117fedad8
typescript_strip: Handle types used only in casts ( #794 )
2020-05-23 14:03:17 +09:00
강동윤
51a2913ae2
Improve typescript stripper ( #792 )
2020-05-21 22:59:06 +09:00
강동윤
5cc3efa851
resolver: Handle body of arrow functions correctly ( #790 )
2020-05-21 19:24:05 +09:00
강동윤
ce88b8c777
Type used in typescript type casting are treated as type
2020-05-21 14:40:44 +09:00
강동윤
71ea61e6c4
Make require
of regenerator use global mark ( #780 )
2020-05-18 23:25:41 +09:00
Gurwinder Singh
5f261fcd5c
Rename Import and Export Node names ( #777 )
...
Co-authored-by: 강동윤 <kdy1997.dev@gmail.com>
2020-05-17 19:15:31 +09:00
강동윤
65f2faa339
Reduce stack usage ( #776 )
2020-05-17 18:50:52 +09:00
강동윤
d74f74932e
Support decorators on parameters ( #775 )
...
Co-authored-by: David Sherret <dsherret@users.noreply.github.com>
2020-05-16 22:36:52 +09:00
David Sherret
8b4fc59805
Support template literals in types ( #767 )
2020-05-16 17:19:48 +09:00
강동윤
ddc5ace570
dce: Separate phase for dropping imports ( #764 )
2020-05-09 12:22:45 +09:00
강동윤
14f5212d3d
Wasm ( #691 )
2020-05-07 18:17:57 +09:00
강동윤
37bfb79b02
Fix dead code elimination pass ( #762 )
2020-05-05 20:10:30 +09:00
강동윤
8615d69ac3
Fix bugs ( #758 )
...
swc_ecma_transforms:
- Module passes resolver pass now shares 'global' context (Closes #724 )
- TypeScript enums are treated as concrete (Closes #757 )
2020-04-30 23:48:52 +09:00
강동윤
cdf1772bf1
Fix declare ( #747 )
2020-04-10 22:26:29 +09:00
강동윤
648e87c28d
Fix exponential operator ( #746 )
2020-04-05 20:45:55 +09:00
강동윤
09279432c4
Do not depend on hashbrown ( #744 )
2020-04-03 10:33:35 +09:00
강동윤
706ae00523
Fix deeply nested optional chaining ( #735 )
...
- Handle deeply nested optional chaining expression correctly (Closes #732 )
2020-03-28 11:59:45 +09:00
Muslim Guseinov
6a6013b14c
Fix enum default value transform ( #730 )
2020-03-26 10:53:35 +09:00
강동윤
da97acca20
Bump
2020-03-10 00:35:53 +09:00
강동윤
e448a8910c
Fix bugs ( #710 )
...
- The parser now supports parsing optional patterns in .d.ts files (Closes #709 )
- The source map is handled properly (Closes #705 , Closes #707 )
2020-03-09 21:18:41 +09:00
강동윤
e5a818aabd
Fix resolver and block_scoping ( #700 )
2020-03-04 16:07:17 +09:00
강동윤
6e028696a5
Faster sourcemap generation for large files ( #697 )
...
We buffer operations related to source map and make it fast using an assumption that the byte positions always increment while emitting a file.
2020-03-02 20:49:08 +09:00
강동윤
8f280c535c
Performance ( #696 )
...
- Parser performance is improved by ~15%
- Codegen performance is improved by ~90% (when comment and source map is enabled)
2020-03-01 20:05:03 +09:00
강동윤
99b5018ba6
Fix ts enum with initializer ( #694 )
2020-02-29 14:54:10 +09:00
David Sherret
0e8c5a6c93
Fix assignment pattern start when there is a type annotation ( #693 )
...
- Update dashmap to 3.5.1
Co-authored-by: 강동윤 <kdy1997.dev@gmail.com>
2020-02-29 10:29:34 +09:00
강동윤
363b8353cf
resolver: handle hoisting correctly ( #689 )
2020-02-25 21:29:52 +09:00
강동윤
1cf86b059d
Fix bugs ( #687 )
...
- stript type-only export default
- allow `continue` in a for loop
2020-02-22 14:49:04 +09:00
강동윤
cb43a69e02
implement { Hash, Eq } for ast nodes ( #684 )
...
As NaN is`IIdent` not `Number`, we can use implement Hash and Eq for ast nodes.
2020-02-21 12:47:06 +09:00
강동윤
e3ca8e5d13
Fix bugs ( #683 )
...
- Fix block_scoping (Fix #682 )
- Handle new.target in susbscript position (Fix #675 )
2020-02-20 13:06:28 +09:00
강동윤
f79223e98c
resolver: Handle method property correctly ( #679 )
2020-02-19 19:49:58 +09:00
강동윤
53d09d448e
Handle await-for loop just like babel ( #676 )
2020-02-18 12:27:13 +09:00
강동윤
e709da9d55
Fix SourceMap ( #672 )
...
Previously, `SourceMap` (taken from rustc) has a bug which reuses start position when new_source_file is invoked concurrently.
2020-02-17 15:56:41 +09:00
강동윤
1fc09caa2f
type-only import, exports ( #662 )
2020-02-13 22:56:13 +09:00
강동윤
f344caa4fa
Reduce binary size ( #663 )
...
This pr add two helper macros to prevent folding type unnecessarily.
This reduces the binary size by 3MB on linux.
2020-02-13 21:55:54 +09:00
강동윤
f26ef0cfb7
Fix optimizer ( #661 )
2020-02-13 15:03:38 +09:00
강동윤
348052b017
Improve optimizer ( #660 )
...
Although it's quite naive at the moment, I added two optimization passes.
- dead code elimination (Closes #607 )
- inlining
2020-02-13 11:45:14 +09:00
kdy1
82e73b1121
Fix bugs ( #659 )
...
- Strip out const assertions (Closes #656 )
- Fix exclude of the file matcher (Closes #658 )
- Automatic typescript detection (Closes #655 )
2020-02-12 15:07:45 +00:00
Hyeon Kim
226336b38b
Fix version of regenerator-runtime ( #644 )
...
7.7.7 is version of @babel/runtime, not regenerator-runtime. Looks like
the intended version was "0.11.0" as you can see in the yarn.lock:
regenerator-runtime@^0.11.0:
version "0.11.1"
resolved "https://registry.yarnpkg.com/regenerator-runtime/-/re ...
integrity sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT9...
Reference:
https://github.com/swc-project/swc/commit/05be89c19
2020-02-10 03:23:10 +09:00
kdy1
f8c358c9ac
Strip type-only imports ( #641 )
...
Fixes #640
2020-02-09 11:35:33 +00:00
강동윤
26eb4e3206
Collect all comments ( #633 )
...
- Comments are now appended
- pin dashmap's version
2020-02-07 14:32:43 +09:00
강동윤
05be89c198
Smaller runtime ( #631 )
...
Replace babel-runtime with regenerator-runtime
2020-02-07 11:19:23 +09:00
alubbe
45604fa6e7
Remove dependency renaming to enable WASM ( #625 )
...
This PR supercedes https://github.com/swc-project/swc/pull/621 and tries to remove dependency renaming to enable WASM, as discussed in https://github.com/swc-project/swc/issues/106
2020-02-05 11:20:25 +00:00
강동윤
8afa3413ea
Remove dependency on lazy_static and chashmap ( #617 )
...
- `lazy_static` is replaced by `once_cell`
- `chashmap` is replaced by `dashmap`
2020-01-30 23:29:12 +09:00
kdy1
01659585e4
Fix parsing of jsx attribute values ( #616 )
...
Closes #614 .
Closes #615 .
2020-01-29 06:24:35 +00:00
kdy1
480015d407
block_scoping: handle variable infection ( #610 )
...
Handle variable infection in the block scoping pass.
i.e. In the code below, v is 'infected' by i.
```js
var functions = [];
for (let i = 0; i < 10; i++) {
let v = i;
functions.push(function() {
return v;
});
}
functions[0]() // should print 0
```
Closes #609 .
2020-01-24 12:29:57 +00:00
kdy1
0ebda3c33e
hygiene / block scoping improvement ( #608 )
...
`hygiene` pass had a bug related to globally defined variables like `Object` or `undefined`. This pr make hygiene to utilize use-bind conflict to resolve global objects correctly.
Closes #605 .
block_scoping pass had a bug with closure in for statement with let or const. This pr fixes it by extracting a loop body as a variable.
Closes #604 .
2020-01-24 05:54:52 +00:00
kdy1
9be9ea2c43
hygiene: fix handling of special identifiers ( #603 )
...
The identifiers are `arguments`, `undefined`, `NaN`.
Closes #602 .
2020-01-23 14:23:24 +00:00
kdy1
20e37eae5d
regenerator: allow nested finally block ( #601 )
...
Previously,
```js
function *foo() {
try {
} finally {
try {
} finally {
throw new Error('foo');
}
}
}
```
make swc panic
Closes #600 .
2020-01-23 01:04:08 +00:00
강동윤
8ecbe14207
hygiene: handle use-use conflict ( #599 )
...
Note that as we don't care about emitting a clean code, the renamed output may not match it of bind-bind conflict or bind-use conflict.
2020-01-22 10:43:59 +09:00
erikdesjardins
08ce8d0293
fix as_bool treating bitor like bitand ( #596 )
2020-01-20 08:22:52 +09:00
강동윤
8e476d8a83
Make parser work identically in release mode ( #577 )
...
swc_ecma_parser:
- parser behaves identically on debug mode and release mode
swc:
- run all tests on travis ci
- use nvm on travis ci
swc_ecma_transforms:
- make async_to_generator understand hoisting
2020-01-17 18:44:51 +09:00
kdy1
96e1dbe213
Improve hygiene and use JSXAttrValue ( #592 )
...
swc_ecmacript:
- use JSXAttrValue (Fixes #584 )
swc_ecma_transforms:
- make hygiene pass check for exported vars (Fixes #591 )
2020-01-17 05:45:33 +00:00
David Sherret
0d67d5d855
Fix JSX opening, closing, spread child, and expression container spans ( #582 )
...
swc_ecma_parser:
- fix opening and closing jsx spans.
- fix JSX expression.
- fix JSX spread child.
2020-01-14 12:37:29 +09:00
강동윤
b7f8282eb1
resolver: handle methods correctly ( #579 )
...
swc_ecma_transform:
- handle a class method in child scope (#578 )
2020-01-11 13:29:31 +09:00
강동윤
5503cde085
Extract utils from swc_ecma_transforms ( #575 )
...
swc_ecma_transforms:
- extract utils
2020-01-08 10:55:22 +09:00
erikdesjardins
3e0f4a5bd7
dce: preserve nested if statement ( #565 )
...
swc_ecma_transforms:
- preserve nested if statements
Co-authored-by: 강동윤 <kdy1997.dev@gmail.com>
2020-01-05 09:51:40 +09:00
David Sherret
c43bc471dd
Fix span for patterns with a type annotation ( #558 )
...
swc_ecma_parser:
* fix span for patterns with a type annotation.
Co-authored-by: 강동윤 <kdy1997.dev@gmail.com>
2020-01-03 14:37:48 +09:00
David Sherret
5acf557e35
GetterProp - Add type_ann ( #557 )
...
swc_ecma_ast:
- add type_ann to GetterProp
swc_ecmascript_parser:
- parse type annotation after a getter property
2020-01-03 13:08:27 +09:00
강동윤
806a6d97da
Regenerator ( #554 )
...
swc_ecma_transforms:
- implement regenerator pass
- add regenerator pass to es2015 preset
swc_ecma_preset_env:
- add regenerator
2020-01-02 20:53:06 +09:00
David Sherret
288008091a
Typo ( #550 )
2020-01-02 10:13:47 +09:00
강동윤
916858ae81
Bugfixes ( #549 )
...
swc_ecma_ast:
- fix TsExprWithTypeArgs (closes #548 )
swc_ecma_codegen:
- allow using default import with namespace import (closes #546 )
swc_ecma_parser:
- parse import.meta (closes #545 )
2020-01-01 06:57:34 +09:00
강동윤
aa2a394f7d
Fix #542 ( #543 )
...
swc_ecma_transforms:
- preserve space after a jsx element
2019-12-30 00:05:43 +09:00
강동윤
702800e0d9
Attach comments to correct node ( #541 )
2019-12-28 22:02:58 +09:00
강동윤
3cf1caa4b1
Bump version
2019-12-28 14:05:12 +09:00
강동윤
6fa85b646f
preset-env ( #537 )
...
swc_ecma_preset_env:
- can inject polyfills automatically
- can apply transforms automatically
swc:
- added env config to .swcrc
2019-12-28 11:25:54 +09:00
강동윤
31a5bed497
Legacy decorator for class and class members ( #531 )
2019-12-25 19:30:16 +09:00
강동윤
ac3f69acd0
Split tests to reduce compile time ( #530 )
2019-12-24 22:53:48 +09:00
강동윤
e2764e997b
Transform for nullish coalescing operator.
...
Fixes #526 .
2019-12-24 18:01:27 +09:00
강동윤
b1e4122b02
Nullish coalescing / optional chaining / comments ( #529 )
...
swc_ecma_ast:
- rename `TsOptChain` to `OptChainExpr` (Fixes #525 )
- add `BinOp::NullishCoalescing`
swc_ecma_parser:
- parse `??` (Fixes #526 )
swc_ecma_transforms:
- remap comments from fixer (Fixes #528 )
2019-12-24 17:01:32 +09:00
강동윤
24b5c44ba3
Numeric separator & Bigint ( #523 )
...
swc_ecma_ast:
- `BigInt` literal
swc_ecma_parser:
- numeric separators. (#521 )
- parsing of bigint literal
2019-12-22 17:14:04 +09:00
강동윤
6186af04a9
Fix handling of jsx texts ( #519 )
...
swc_ecma_transforms:
- Fix handling of jsx texts (#517 )
2019-12-21 16:59:04 +09:00
강동윤
30af06bb70
Ast ( #513 )
...
swc_ecmascript:
- add `ExprStmt`.
- change type of regex.expression and regex.flags.
2019-12-16 18:08:21 +09:00