Commit Graph

711 Commits

Author SHA1 Message Date
강동윤
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
강동윤
08c5d83d20 Bump version 2020-12-27 13:22:02 +09:00
강동윤
34249bbf47
feat(ecmascript/ast): Add EqIgnoreSpan and TypeEq (#1295) 2020-12-27 13:11:44 +09:00
Boris
c2a99944cf
feat(ecmascript/parser): Add tests for binding patterns (#1289) 2020-12-22 14:12:33 +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
Liam Murphy
576fb6a532
fix(ecmascript/lexer): Normalize \r\n and \r to \n in template literals (#1286)
swc_ecma_parser:
 - Normalize \r\n and \r to \n in template literals.

Co-authored-by: 강동윤 <kdy1997.dev@gmail.com>
2020-12-21 17:56:17 +09:00
Liam Murphy
b760c7c9c7
fix(ecmascript/codegen): TsQualifiedName has trailing dot (#1268)
Co-authored-by: 강동윤 <kdy1997.dev@gmail.com>
2020-12-20 22:27:31 +09:00
강동윤
0ead8dc403
fix(ci): Fix ci (OOM & library api change) (#1284) 2020-12-20 21:31:00 +09:00
강동윤
bf69b47791
fix(ecmascript/parser): Fix span of declare decls. (#1282)
swc_ecma_parser:
 - Include `declare` span. (#843)
2020-12-19 23:48:13 +09:00
강동윤
25856f230c
feat(parser): Don't hang on unexpected inputs (#1274)
swc_ecma_parser:
 - Don't hang on unexpected inputs. (#1272, denoland/deno#8719)
2020-12-14 16:37:11 +09:00
강동윤
ccf4c2b12c
feat(fixer): Handle ?? properly (#1270)
swc_ecma_transforms:
 -  Handle `??` properly. (denoland/deno#8722)
2020-12-12 17:45:54 +09:00
David Sherret
7a46c8844e
Implement Spanned for TokenAndSpan (#1269)
Co-authored-by: 강동윤 <kdy1997.dev@gmail.com>
2020-12-12 12:45:22 +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
Luca Casonato
8ba2ae959d
feat: specifier position in DependencyDescriptor (#1260)
Co-authored-by: 강동윤 <kdy1997.dev@gmail.com>
2020-12-09 11:27:09 +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
강동윤
ea6beaa06d
Fix bundler (#1242)
swc_ecma_codegen:
 - Fix codegen of unicode escapes. (denoland/deno#8541)

swc_bundler:
 - Allow importing a module multiple time. (denoland/deno#8530)
2020-11-30 18:21:34 +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
Pig Fang
11dbc1406c
TypeScript 4.1: intrinsic keyword (#1193)
Co-authored-by: 강동윤 <kdy1997.dev@gmail.com>
2020-10-29 18:37:22 +09:00
Pig Fang
5ef993d9b2
TypeScript 4.1: template literal type (#1190)
Co-authored-by: 강동윤 <kdy1997.dev@gmail.com>
2020-10-29 17:27:35 +09:00
강동윤
a368f66e77 Bump version 2020-10-29 15:44:12 +09:00
강동윤
32b3bbd50b
Emit only ascii (#1191)
swc_ecma_codegen:
 - Emit only ascii characters. (#1187, #1188)
2020-10-29 14:33:33 +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
Brad Dunbar
667a8c72c0
Single argument arrow functions (#1186)
swc_ecma_codegen:
 - Remove parens from arrow functions when possible.
 - Remove space after prop keys when minifying.
 - Remove line break after expressions when minifying.
 - Remove space after generator `*` when minifying.
2020-10-27 15:08:05 +09:00
Brad Dunbar
6e9d06e95a
codegen: Preserve space for postfix unary operators (#1185)
Co-authored-by: 강동윤 <kdy1997.dev@gmail.com>
2020-10-25 17:38:27 +09:00
Frederik Wessberg
6b03c659ca
transforms: fix _typeof helper 2020-10-24 23:26:13 +09:00
강동윤
6ba64ed359 Bump version of swc_ecmascript 2020-10-20 22:17:28 +09:00
강동윤
cf01ec8277 Bump version 2020-10-20 22:09:52 +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
Brad Dunbar
fd760fbf09
parser: Remove unnecessary question mark (#1174) 2020-10-19 11:19:56 +09:00
강동윤
626c881c98
bundler: Fix ordering (#1171) 2020-10-16 22:26:18 +09:00
강동윤
11d137ac11
ast: Add support for fuzzing (#1167)
swc_common:
 - Add support for fuzzing.

swc_ecma_ast:
 - Add support for fuzzing.
2020-10-15 14:58:11 +09:00
강동윤
a5e6242601 Bump version 2020-10-14 14:39:51 +09:00
Pig Fang
aded151b8f
[typescript] 4.1 mapped type 'as' clause (#1151)
Co-authored-by: 강동윤 <kdy1997.dev@gmail.com>
2020-10-13 16:44:05 +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
Juho Vepsäläinen
ea091337d8
fix(jsx): Drop extra spaces around jsx attributes (#1121)
Co-authored-by: 강동윤 <kdy1997.dev@gmail.com>
2020-10-02 17:06:02 +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
강동윤
1f00d9ba26
Fix jest extension (#1106) 2020-09-24 19:49:12 +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
강동윤
7e8ff1d342
codegen: Fix for jsx (#1097) 2020-09-22 19:56:59 +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
강동윤
7905b0dcf5
wasm: Automatic deployment (#1084)
wasm:
 - Add auto deployment.
2020-09-19 02:07:28 +09:00
강동윤
7ffb4c0bf9
Extension for jest (#1081) 2020-09-18 14:29:50 +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
강동윤
31d4a0ee73 Bump swc_ecmascript 2020-09-12 22:00:06 +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
강동윤
0972db98a1
parser: Parse member expression is object patterns (#1068) 2020-09-12 18:39:25 +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
강동윤
2fff66d985
codegen: Don't emit newline after a block comment (#1062) 2020-09-11 15:09:35 +09:00
강동윤
09e3f96a3e
jsdoc: Fix parser (#1059) 2020-09-11 12:52:57 +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
Bartek Iwańczuk
c4cc433434
fix(dep_graph): top level dynamic import (#1024) 2020-09-03 23:28:25 +09:00
강동윤
1fd9bd63f9 Bump version 2020-09-03 22:51:04 +09:00
Bartek Iwańczuk
9a073f10a5
fix: expose dep_graph crate (#1023) 2020-09-03 22:46:41 +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
강동윤
8e237288d7
Migrate to napi (#1009) 2020-08-30 15:29:42 +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
Bartek Iwańczuk
8ab466aafb
Add dependency analyzer (#1010) 2020-08-29 20:07:34 +09:00
강동윤
274b112ef4 Bump version 2020-08-29 20:00:34 +09:00
강동윤
9f2120ed4b
Improve performance of parser (#1004) 2020-08-27 21:33:34 +09:00
강동윤
99981f70c7
Add customizable api (#1006) 2020-08-27 20:35:28 +09:00