강동윤
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
강동윤
2de59759de
Reduce size ( #928 )
...
Reduce binary size and make some dependencies optional for deno
2020-08-04 01:33:23 +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
강동윤
ca43112d2a
codegen: Preserve quotes ( #911 )
2020-07-28 21:56:19 +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
강동윤
c58b9c8649
Fix lint
2020-07-27 23:01:51 +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
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
강동윤
38adc49e7e
Bugfixes ( #873 )
...
swc_common:
- Fix new_source_file
swc_ecma_parser:
- Fix parsing of paren expr in lhs of an assignment
2020-07-01 16:31:55 +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
강동윤
fcef201695
spack: super-fast bundler ( #825 )
...
Version is alpha as it's not complete
2020-06-13 23:09:45 +09:00
강동윤
fce0917016
Fix bigint literals ( #837 )
2020-06-11 17:49:40 +09:00
강동윤
3b1ebdd2e9
Allow using properties with legacy decorators ( #824 )
2020-06-06 15:30:40 +09:00
Vladimir Guguiev
ab7c9b1287
Implement codegen of export foo as Foo from foo;
( #815 )
...
Co-authored-by: 강동윤 <kdy1997.dev@gmail.com>
2020-06-03 11:05:29 +09:00
강동윤
0efba88e3f
Improve typescript parser ( #811 )
2020-06-02 19:22: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
강동윤
09279432c4
Do not depend on hashbrown ( #744 )
2020-04-03 10:33: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
강동윤
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
강동윤
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
강동윤
64ed0bd801
Validate sourcemap ( #669 )
2020-02-16 16:51:42 +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
강동윤
64f6e51b42
Unescape template literals before emitting. ( #652 )
...
Fixes #637 .
Fixes #639 .
2020-02-11 13:33:29 +09: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
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
강동윤
1bcfcb741a
Fix #555 ( #556 )
2020-01-03 12:19:39 +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
David Sherret
708efebac9
Fix comment line's end to be on same line ( #544 )
...
- fix comment line's end to be on same line.
2019-12-30 11:09:45 +09:00
강동윤
702800e0d9
Attach comments to correct node ( #541 )
2019-12-28 22:02:58 +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
강동윤
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
강동윤
30af06bb70
Ast ( #513 )
...
swc_ecmascript:
- add `ExprStmt`.
- change type of regex.expression and regex.flags.
2019-12-16 18:08:21 +09:00
강동윤
332061f44d
Parser: respect jsc.target ( #507 )
...
swc:
- make parser respect `jsc.target`.
2019-12-14 18:51:08 +09:00
kdy1
fa98c470d6
Program instead of Module ( #499 )
...
This pr adds an option to parse file as script, not module.
Related: https://github.com/swc-project/swc/issues/491
2019-12-11 06:07:21 +00:00
강동윤
b3a2ee8e9b
Fix bugs ( #482 )
...
swc_ecma_parser:
- fix lexing of numbers like 9.09
swc_ecma_transforms:
- jsx_text_to_str
- use fxhash instead of ahash for exports
2019-12-02 20:19:15 +09:00
Zimon Dai
ec086a1dab
use 2018 edition syntax ( #479 )
2019-12-02 17:10:05 +09:00
강동윤
a7a8a4a2e4
Plugin ( #473 )
...
swc_common:
- apply patch from rust-lang/rust#59693
swc:
- use &Options instead of Options
- configures commons::CM
- exposes `handler`
2019-11-29 23:46:06 +09:00
강동윤
8c7005d7ab
More testing ( #469 )
...
swc:
- Move tests from node-swc to swc
- Add integration tests (webpack, rxjs, angular-core)
- Support `exclude`
swc_ecma_transforms:
- More span validation
- classes:
- Strip `TsIndexSignature`
swc_ecma_parser:
- Fix span of member expression
- Fix span of binary expression
- Fix span of unary expression
2019-11-26 10:08:48 +09:00
강동윤
fc9880e4f4
Bump parser's version
2019-11-24 14:42:08 +09:00
강동윤
b46c4ec300
Update dependencies ( #464 )
2019-11-24 14:17:27 +09:00
강동윤
3474c61a48
Fix codegen and parsing of template literal ( #453 )
...
- Fix codegen and parsing of template literal (#450 )
2019-11-18 19:54:24 +09:00
강동윤
d074063867
Parser: Error recovery ( #449 )
...
Implement some error recovery logic to parser
2019-11-17 18:36:47 +09:00
Jasper De Sutter
716bfe05b2
Cleanup ( #448 )
...
- cargo fix
- update all crates to 2018 edition
2019-11-17 13:21:53 +09:00
강동윤
bc4a2976e5
Validate spans ( #447 )
...
- Add span validator to swc_ecma_transforms
2019-11-16 23:49:32 +09:00
강동윤
37b80dfd08
Optional chaining for typescript ( #444 )
...
Implement typescript 3.7's optional chaining
2019-11-15 14:34:48 +09:00
강동윤
96aa4796ea
Fix #441
2019-11-15 14:23:39 +09:00
강동윤
d64d125996
Bugfixes ( #440 )
...
* Allow running swc on babel's output (#438 )
* Print comments correctly (#439 )
2019-11-10 18:21:28 +09:00
강동윤
167008de6f
Expose tokenizer ( #437 )
...
swc_common:
- Added input::Input
swc_ecma_parser:
- Made lexer public
- Make input type of parser generic
- Added example of using lexer
2019-11-06 13:14:44 +09:00
강동윤
ae3326cd9d
Compiler apis & .swcrc improvement ( #434 )
...
- Expose high-level compiler apis (#431 )
- Support multiple entries in .swcrc (#414 )
2019-10-25 10:11:24 +09:00
강동윤
2e5c81ee8e
Fix parsing readonly array and tests
...
Closes #432
2019-10-23 20:20:17 +09:00
강동윤
34c3a0ece9
Fix lints
2019-10-19 12:47:25 +09:00
강동윤
9f1fca55ff
Update rustc toolchain to nightly-2019-09-30
2019-10-02 13:53:56 +09:00
강동윤
2bd4475c5d
Fix codegen tests
2019-09-20 23:39:19 +09:00
강동윤
c20176820e
Fix #415
2019-09-20 23:07:24 +09:00
강동윤
4f8220329f
publish
2019-09-20 13:41:11 +09:00
강동윤
eefdaaaa2f
Fold expressions in module item ( #420 )
...
* Fix #413
2019-09-20 13:20:37 +09:00
강동윤
7715c2626b
Issues ( #404 , #406 , #407 ) ( #408 )
...
swc_ecma_transforms:
- fix mis-referencing caused by destructuring (#404 )
- fix invalid code generated by comment on arrow functions (#406 )
- fix string concatation of template literal (#407 )
- hygiene: fix rewriting of object pattern
- fix test module to prevent SIGILL
- fix module import order (using IndexMap)
2019-09-18 14:40:22 +09:00
강동윤
a1c2538338
hashbrown & comment revamp
2019-06-25 09:41:58 +09:00
강동윤
ed64a60cb3
Publish ast / codegen /transforms
2019-05-02 15:50:21 +09:00
강동윤
2951546f77
Fix sourcemap.
...
Closes #349
2019-05-01 19:18:48 +09:00
강동윤
b329d34632
Fix codegen of async method property
2019-04-26 18:01:36 +09:00
Erik Desjardins
3cc2e3315d
Don't emit octal escape for null character followed by digit
2019-04-09 19:37:43 -04:00
bors[bot]
48b2607b28
Merge #362
...
362: Fix #358 r=kdy1 a=kdy1
Fix #358
Co-authored-by: 강동윤 <kdy1@outlook.kr>
2019-04-07 14:10:29 +00:00
강동윤
fe451d5809
Fix #360 and update rustc
2019-04-05 12:19:18 +09:00
강동윤
adcc5954ee
Fix #358
2019-03-25 12:11:15 +09:00
Michael Stewart
6f97012821
fix test imports for latest nightly ( #355 )
2019-03-23 13:18:55 +09:00
강동윤
ed100700f1
Make deserialization fast ( #314 )
...
swc_ecma_ast:
- add deserialization benchmark
ast_node:
- #[ast_node] on enum now implements faster deserialization
2019-03-05 23:16:45 +09:00
강동윤
a46804ab48
swc_ecma_ast:
...
- Split class member / property into separate types
2019-02-28 19:25:38 +09:00
강동윤
1e38d2e124
Handle sourcemap correctly
2019-02-27 17:44:11 +09:00
강동윤
a5bc5c1490
Publish (again) ( #279 )
...
- swc_ecma_codegen@0.6.1
- swc_ecma_codegen_macros@0.3.0
- swc_ecma_parser@0.9.1
- swc_ecma_parser_macros@0.3.0
2019-02-27 10:48:02 +09:00
강동윤
10cb9a4b21
Publish ( #278 )
...
- swc_macros_common@0.2.0
- ast_node@0.4.1
- string_enum @0.2.0
- swc_ecma_ast@0.8.0
- swc_ecma_parser_macros@0.3.0
- swc_ecma_codegen_macros@0.3.0
- swc_ecma_parser@0.9.1
- swc_ecma_parser@0.6.1
2019-02-27 10:42:22 +09:00
강동윤
1b28766c26
Improve comment api ( #277 )
...
swc_ecma_parser:
- parser now take comments by reference
2019-02-26 13:56:58 +09:00
강동윤
906d6a0625
Fix codegen of yield, break, continue. Fixes #275 .
2019-02-25 11:42:50 +09:00
강동윤
dff2cb8f75
Implement deserialize for ast nodes ( #274 )
...
string_enum:
- #[derive(StringEnum)] now derives `Deserialize`
swc_ecma_ast:
- implement deserialize for ast nodes.
- change ast to make it serialized / deserialized correctly
swc_ecma_parser:
- jsx, test262, typescript tests now verify serialization and deserialization of module
2019-02-24 14:12:04 +09:00
강동윤
c1de0a5c86
Improve codegen of binary expression which contains unary expression. ( #267 )
...
swc_ecma_codegen:
- improve codegen of binary expression which contains unary expression (#266 )
2019-02-22 12:04:41 +09:00
강동윤
7d5316463d
Fixes ( #241 )
...
swc_ecma_transforms:
- handle constructor from object_rest_spread pass (#239 )
- typescript::strip pass now removes signature-only constructor
swc_ecma_parser:
- fix parsing of do while statement (#242 )
swc_ecma_codegen:
- fix codegen of do while statement (#242 )
2019-02-19 15:20:02 +09:00
강동윤
2b7240c595
Support export * as Foo from 'foo';
( #228 )
...
swc_ecma_parser:
- support `export * as Foo from 'foo';` (Fix #226 )
swc_ecma_transforms:
- support `export * as Foo from 'foo';` (Fix #226 )
2019-02-18 14:01:56 +09:00
강동윤
3fc360d870
Make sourcemap optional
2019-02-17 23:25:35 +09:00
강동윤
631eff9e8c
Bugfixes ( #208 )
...
swc_ecma_codegen:
- fix codegen of shebang (#177 )
- add test for #197 .
swc_ecma_transforms:
- fix object rest spread pass (#162 )
2019-02-14 13:24:01 +09:00
강동윤
b27829825e
Fix Bugs ( #205 )
...
swc_ecma_codegen:
- escape characters (#204 )
swc_ecma_parser:
- fix parsing of `<!--`
swc_ecma_transforms:
- promote VarCollector to crate-level utility
- fix es3::member_expr_lits (#206 )
- fix es2015::duplicate_keys pass (#203 )
- improve fixer (paren for assignment) (#201 )
- improve fixer (arrow expression) (#207 )
- make typescript pass strip out type-only exports (#196 )
2019-02-14 11:03:06 +09:00
강동윤
c647cf1bc0
Fix bugs ( #193 )
...
swc_ecma_parser:
- fix lexer
- better error reporting for jsx reference test
swc_ecma_codegen:
- Update references
2019-02-13 16:03:38 +09:00
강동윤
2d062432a8
Shebang & small improvement for object rest spread ( #184 )
...
swc_ecma_ast:
- handle shebang
swc_ecma_codegen:
- handle shebang
swc_ecma_parser:
- handle shebang
swc_ecma_transforms:
- fix arrow expression used with object rest spread
2019-02-13 11:08:21 +09:00
강동윤
fc661f24f0
Bugfixes ( #182 )
...
swc_ecma_ast:
- rename ast to be consistent
2019-02-13 08:18:19 +09:00
강동윤
227423d5f6
Export default from & fix codegen of imports ( #168 )
...
swc_ecma_ast:
- Support `export v from 'foo';`
swc_ecma_parser:
- Support `export v from 'foo';`
swc_ecma_codegen:
- Fix codegen of side-effect imports
2019-02-12 15:30:11 +09:00