Commit Graph

204 Commits

Author SHA1 Message Date
강동윤
265eb9e30c
Improve performance of serialization and deserialization (#475) 2019-11-30 14:49:18 +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
강동윤
41c6941dc5 fixup! Don't omit empty values while serializing 2019-11-28 17:53:03 +09:00
강동윤
5532e628b2 Don't run cargo clippy on push 2019-11-28 13:38:11 +09:00
강동윤
747a07f566 Update submodules 2019-11-26 20:42:41 +09:00
강동윤
b81200b1db Update references 2019-11-26 11:31:16 +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
강동윤
7d4168f415
Parser performance (#463)
- Update string_cache from 0.7 to 0.8
 - Update unicode_xid from 0.1 to 0.2

swc_ecma_parser:
 - Add benchmarks for lexer
2019-11-23 23:03:19 +09:00
강동윤
fa941b3ea3
resolver: Handle arrow expression correctly (#462)
swc_ecma_transforms:
 - resolver: Handle arrow expression correctly (#462)
2019-11-23 19:14:52 +09:00
강동윤
8ec7a69572
Parser performance (#459)
- codegen-units = 1 for benchmarks

swc_ecma_parser:
 - Add a benchmark for typescript lexer
 - Remove dynamic dispatch in lexer
 - Improve performance of typescript
2019-11-23 13:03:29 +09:00
강동윤
4a80790d73 Add benchmark for typescript parser 2019-11-22 21:13:14 +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
강동윤
d50ab99ef0
Fix #451 (#452)
swc_ecma_parser:
 - Fix parser of eval and arguments

swc_ecma_transforms:
 - Improve fixer (#451)
2019-11-18 18:19:25 +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
강동윤
25523f45bd Remove unsafe 2019-11-13 20:00:21 +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
강동윤
2add7a08ef fixup! Bump versions 2019-10-23 22:22:54 +09:00
강동윤
4a41140854 Bump versions 2019-10-23 22:20:00 +09:00
강동윤
7f5d3a4db1 Fix parsing of single untyped param in IIFE
Closes #433
2019-10-23 20:53:28 +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
강동윤
d7d22c2d5e
Optional try catch binding (#422)
swc_ecma_parser:
 - Add test for optional try catch binding
 
swc_ecma_transforms:
 - Implement optional catch binding (#411)
2019-09-22 19:31:32 +09:00
강동윤
61a1367974 Fix #410 2019-09-20 23:35:45 +09:00
강동윤
c20176820e Fix #415 2019-09-20 23:07:24 +09:00
강동윤
c7abda95d4
typescript const assertion (#419)
Fixes #401.
2019-09-18 22:54:12 +09:00
강동윤
0e1991f62d
Fix bugs (#394)
- Add a test case for #392
 - Add tests for #389
 - Fix #388
 - Fix #387 
 - Add tests for #392

swc_ecma_parser:
 - Make non-last rest paramters in object pattern error
 - `...` must be followed by an identifier
2019-06-03 21:54:09 +09:00
강동윤
aa06bb7cc9 Bump version 2019-05-02 15:52:39 +09:00
강동윤
b4dde98c09
Fix #380 (#381)
swc_ecma_parser:
 - fix parsing of dot after dynamic imports (#380)
 - fix parsing of dynamic imports on top level
2019-04-29 23:36:30 +09:00
강동윤
0d52148dcd
Bugfixes (#375)
swc_ecma_transforms:
 - fix hygiene for decorators (#367)
 - add test for react with common js module (#351)

swc_ecma_parser:
  - add test for string escape problem (#350)
2019-04-28 14:58:52 +09:00
강동윤
b44da9dbe4
Fix #369, #370 (#373)
swc_common:
 - don't emit `loc` for dummy spans

swc_ecma_transforms:
 - prevent hygiene from changing key in object pattern (#369)
 - fix module tests (iteration order of FxHashSet is changed)

swc_ecma_parser:
 - fix parsing of arrow function (#370)
2019-04-27 16:28:34 +09:00
강동윤
fe451d5809 Fix #360 and update rustc 2019-04-05 12:19:18 +09:00
Michael Stewart
6f97012821 fix test imports for latest nightly (#355) 2019-03-23 13:18:55 +09:00
寧靜
84973890e7 Update util.rs (#352)
swc_ecma_parser:
 - handle unicode_xid properly
2019-03-19 21:51:12 +09:00
강동윤
8674a1dae9
Chores (#341)
- add tests for #340.
 - add backer
2019-03-12 17:24:51 +09:00
강동윤
13bf89d08c
Fix bugs (#339)
swc_ecma_parser:
 - fix parsing of type query (#338)
 - fix parsing of `in` in a let / const declaration (#337)

swc_ecma_transforms:
 - string literal is computed (#336)
 - modules: handle imports in lhs of assignment correctly (#335)
2019-03-11 20:33:15 +09:00
강동윤
a40518f667
v1.0.36 (#330)
swc_ecma_parser
 - decorator_before_export is true for typescript. (#325)
 - fix parsing of dynamic imports. (#328)
 - fix parsing of conditional expression. (#327)
2019-03-09 09:07:15 +09:00
강동윤
248a53ce7c
Make deserialization faster (#324)
swc_ecma_ast:
 - make deserialization faster
2019-03-08 11:36:23 +09:00
강동윤
a311f42acf
Bugs (#321)
swc_ecma_parser:
 - add a test to ensure that \r\n is lexed correctly (#316)

swc_ecma_transforms:
 - destructuring pass now handle variable exports correctly (#317)
 - es2017::async_to_generator now handles module items. Fix #319.
 - prevent hygiene pass from de-exporting class and funcrion (#315)
2019-03-07 15:48:45 +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
강동윤
1a0f1108a1
Bugs (#303)
swc_ecma_transforms:
 - report error if jsx namespace is used (#301)
2019-03-01 18:18:57 +09:00
강동윤
a2144bbbf5 Handle escapes in jsx attributes. Fix #299. 2019-03-01 16:31:26 +09:00
강동윤
f49fbea2af Update referenes 2019-02-28 19:30:58 +09:00
강동윤
a46804ab48 swc_ecma_ast:
- Split class member / property into separate types
2019-02-28 19:25:38 +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
강동윤
a75dbdf2f2 Update references 2019-02-25 19:47:53 +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
강동윤
7dcb2e34af Add test for #269. 2019-02-22 15:55:04 +09:00
강동윤
07e2cffb43
Fixes (#265)
swc_ecma_parsr:
 - fix parsing of invalid utf8 characters (#261)
 - fix parsing of function body (#257)
 - fix parsing of  () => (x = true) (#259)

swc_ecma_transforms:
 - fix default arguments in arrow expression (#254)
 - fix assignment pattern in array pattern (#260)
 - make amd / umd configurable. (#262)
2019-02-21 22:21:48 +09:00
강동윤
76ce98b685
Implement serialize for ast nodes (#244)
swc_common:
 - implement Serialize / Deserialize for span

swc_ecma_parser:
 - use json instead of {:#?} while testing
 - update test references
2019-02-20 11:35: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
강동윤
4dc10d849e
Fixes (#237)
swc_ecma_transforms:
 - handle pattern correctly in coomon_js pass (#235)
 - fix object rest in arrow expression (#233)
2019-02-19 12:52:03 +09:00
Nate Mara
6fd789aa34 Remove dbg! macro call (#232) 2019-02-19 10:34:12 +09:00
강동윤
aa8940c1b0 Fix #226.
Now parser works correctly when either
exportDefaultFrom and exportNamespace is enabled
2019-02-18 23:43:53 +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
강동윤
1a1889f437
Fix bugs (#221)
swc_ecmascript_parser:
 - fix parsing of `export default from 'src';`

swc_ecmascript:
 - add a pass which allows injecting helpers before the module pass
2019-02-16 14:18:22 +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
강동윤
c1a3cc53c1
React jsx / improve fixer (#202)
swc_ecma_parser:
 - fix parsing of jsx

swc_ecma_transforms:
 - fix fixer (#199)
2019-02-13 19:12:00 +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
강동윤
fedfea4e09 Fix #190 2019-02-13 14:24:44 +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
강동윤
f797019b79
Use strict (#183)
swc_ecma_parser:
- fix parsing of use strict without semicolon.

swc_ecma_transforms:
 - emit helpers after use strict.
2019-02-13 08:44:54 +09:00
강동윤
bd219688ac
Typescript bugs (#170)
swc_ecma_parser:
 - fix parsing of cond expression (Closes #158)
 - fix parsing of function signature (Closes #159)
2019-02-12 22:05:46 +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
강동윤
7fe2245a3d
Cleanup (#152)
- replace Lrc with std::sync::Arc
swc_common:
 - make swc_common::sync private
 - improve MoveMap

swc_ecma_codegen:
 - fix codegen of import.

swc_ecma_transforms:
 - properly detect valid identifier.

swc_ecma_parser:
 - Fix parsing of cond expr inside paren.
2019-02-11 11:39:20 +09:00
Adrian Adamiak
c2142bc225 Remove a leftover (#149)
Remove unused variable from colors.js
2019-02-11 09:40:53 +09:00
nateroling
5afed275f1 Typo correction (#150)
Fix a couple comment typos.
2019-02-11 09:40:28 +09:00
강동윤
ab4f619257
Fix tests (#142) 2019-02-10 20:49:29 +09:00
강동윤
605019280f Fix parsing of import expression 2019-02-10 14:33:21 +09:00
강동윤
b1bf99c67c improve error messages 2019-02-10 12:26:27 +09:00
강동윤
3b8d36dc58 Parse dynamic imports 2019-02-10 12:07:40 +09:00
강동윤
43d633b44d
Handle comments and improve codegen (#136)
swc_ecma_codegen:
 - Improve codegen
 - Handle comments

swc_ecma_parser:
 - Handle comments
2019-02-08 13:00:58 +09:00
강동윤
b516c19133
Update dependencies (#135) 2019-02-07 00:05:25 +09:00
강동윤
e63be11d0e Fix order of the classes pass 2019-01-30 13:05:45 +09:00
강동윤
ba0c7c908c
Improve swc_ecma_trnasforms (#127)
# swc_ecma_ast
 - Add PrivateName to Expr

# swc_ecma_parser
 - Fix parsing of private name

# swc_ecma_transforms

## Hygiene
 - It correctly tracks `BindingIdentifer` / `IdentifierReference`
 - Preserve `IdentiferReference` if it conflicts with a `BindingIdentifier`

## Block scoping
 - It correctly tracks `BindingIdentifer` / `IdentifierReference`


## Fixer
 - It removes useless parens.
 - It removes useless `IdentiferReference`s in comma expressions.

## Classes properties
 - public prooperty
 - private property

## Class decorators
 - implemented
2019-01-29 23:56:16 +09:00
강동윤
c648232864
Classes improvements (#123)
Now swc passes all tests from `@babel/plugin-transform-classes`
2019-01-24 16:07:09 +09:00
강동윤
9313b04c6c Enable some assertions and fix ICE on release mode 2019-01-22 12:37:51 +09:00
강동윤
4379515f00 Bump version 2019-01-20 11:10:31 +09:00
강동윤
f87e2fb123 Fix parser 2019-01-20 11:08:26 +09:00
강동윤
cb12e13a0b Fix cfg(not(procmacro2_semver_exempt)) 2019-01-19 09:31:31 +09:00
강동윤
29c5faed9b Remove usage of nightly features 2019-01-18 10:26:04 +09:00
강동윤
8ff21b9c99 Bump version (again) 2019-01-18 00:01:10 +09:00
강동윤
ca235e1c67 Bump version 2019-01-17 23:58:43 +09:00
강동윤
3facfd8810 Bump version 2019-01-17 23:57:56 +09:00
강동윤
12944c006a Fix to publish it 2019-01-17 23:38:45 +09:00
강동윤
eebf14fbef
Allow stable rust (#118)
This pr introduces some cargo features. For `swc_common` and `swc_ecma_ast`, it introduces a feature flag `fold`.
`Fold` and `Visit` traits exist only if the feature is enabled.

For `swc_ecma_parser`, flag called `verify` is added. When disabled, we skip checking of validity of some expressions.

e.g. `{foo = bar}`

Verification is disabled by default it requires nightly compiler
2019-01-17 23:17:16 +09:00
강동윤
338759110f Fix parsing of large integers 2019-01-16 11:53:41 +09:00
강동윤
a126afaf42 Better error messages for unimplemented!s 2019-01-15 20:18:41 +09:00
강동윤
2a49e1e896 implement clone for transform passes 2019-01-14 17:36:15 +09:00
강동윤
1fabc3fa3e debug_assert! instead of assert!
This reduces binary size
2019-01-10 18:54:40 +09:00
강동윤
d4fefa8615
Reduce binary size (#116)
- remove unused debug impls
2019-01-10 18:23:25 +09:00