Commit Graph

258 Commits

Author SHA1 Message Date
dsherret
d4fa2a6a96 Ensure semi-colon is eaten for dynamic imports and import meta found at the start of expression statements (#595)
Fixes #594.

Also fixes span for "imports" identifier.
2020-01-18 04:51:20 +00:00
David Sherret
a55fced20b Fix spans for "as" and const assertions (#593)
- Fix spans for "as" and const assertions
2020-01-18 12:33:01 +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
David Sherret
e5004da87e - Spans of class members and classes should include decorators. (#581)
- spans of class members and classes should include decorators.
 - fix hi position for class parameter properties.
 - fix span of members with accessibility.
2020-01-12 08:41:43 +09:00
David Sherret
b7b7fda982 Fix type predicate start position. (#580) 2020-01-12 08:38:58 +09:00
David Sherret
fea4c5bd63 TypePredicate - Parse the asserts modifier (#567)
swc_ecma_parser:
 - add support for asserts modifier from typescript 3.7
2020-01-09 14:14:44 +09:00
kdy1
6eb066166f Don't emit error messages while trying (#574)
swc_ecma_parser:
 - don't emit error messages while trying (Closes #573)
2020-01-07 12:36:51 +00:00
kdy1
02d4fb60f2 Make capturing fast (#570)
swc_ecma_parser:
 - made capturing fast (Closes #533)
2020-01-06 01:02:51 +00:00
dsherret
8e3827403e Fix class and interface spans (#566)
The interface span for something like `interface Test {}` was `Test {}`. Also, for stuff like `export default abstract class Test{}` it was `class Test{}` instead of `abstract class Test {}`.
2020-01-06 00:08:59 +00:00
dsherret
9676a05853 Import type should have type arguments rather than type params (#560)
Just found another occurrence of this. Similar to #548. 

![image](https://user-images.githubusercontent.com/1609021/71735836-716b2d00-2e1d-11ea-8878-50d28da9fa5e.png)

I'm currently going through all the types right now so you might want to hold off on merging this or doing a breaking change release until I finish that.
2020-01-04 23:56:31 +00:00
강동윤
c0cc2185ea
Fix ci (#561)
- line endings are normalized
 - switched to github actions from travis to check forked branches
2020-01-04 13:33:25 +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
강동윤
1bcfcb741a
Fix #555 (#556) 2020-01-03 12:19:39 +09:00
David Sherret
5f6b11348a Fix span of the switch statement. (#553) 2020-01-02 16:46:56 +09:00
David Sherret
4f76cddebd Fix span of await token in for/for-in/for-of stmts. (#551) 2020-01-02 10:18:20 +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
64bddebb2b Fix parsing class properties as readonly (#547)
swc_ecma_parser
 - parse readonly property correctly
2020-01-01 03:14:46 +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
강동윤
aa2a394f7d
Fix #542 (#543)
swc_ecma_transforms:
 - preserve space after a jsx element
2019-12-30 00:05:43 +09:00
David Sherret
bde5341bd7 Fix string literal span on import/export specifiers to only include string literal (#540) 2019-12-29 16:18:14 +09:00
강동윤
702800e0d9
Attach comments to correct node (#541) 2019-12-28 22:02:58 +09:00
강동윤
8562d3fbfb
Fix parser (#539)
swc_ecma_parser:
 - mark `declare` as `declare` (#538)
 - fix span of `export * from 'foo'` (#535)
2019-12-28 12:19:44 +09:00
강동윤
b98f17b84d Bump versions 2019-12-26 08:53:13 +09:00
David Sherret
32860576f2 Comment and TokenAndSpan - Implement Spanned (#534) 2019-12-26 08:35:43 +09:00
강동윤
31a5bed497
Legacy decorator for class and class members (#531) 2019-12-25 19:30:16 +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
David Sherret
668c2713d9 Support numeric separator for typescript. (#524) 2019-12-23 14:35:58 +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
강동윤
ed8ba26ae6 Fix tests 2019-12-21 17:09:53 +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
강동윤
51d21af031 Fix #516 2019-12-19 13:08:52 +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
David Sherret
fb9539df6f Expose token module. (#510)
swc_ecma_parser:
- expose token module
2019-12-15 08:08:13 +09:00
강동윤
332061f44d
Parser: respect jsc.target (#507)
swc:
 - make parser respect `jsc.target`.
2019-12-14 18:51:08 +09:00
kdy1
3ec395ba75 Improve performance & update rustfmt (#504) 2019-12-13 06:21:25 +00:00
강동윤
5076249c90 fixup! Add a test for #503 2019-12-13 08:38:46 +09:00
강동윤
126b6bc761 Add a test for #503 2019-12-13 08:35:32 +09:00
kdy1
0df908fdb4 ast & parser improvement (#502)
Parser can now parse typescript source code and rxjs.

Closes #468.
2019-12-11 14:28:35 +00:00
강동윤
d53c94f1fb Bump parser's version.
Closes #500
2019-12-11 15:56:27 +09:00
강동윤
1a48efa4e4
ES3 (#498)
* Add a test for #496
 - Better error message for TS1056
 - Allow using dynamic import with es3 target
2019-12-11 13:35:15 +09:00
Nurbol Alpysbayev
79128a1d1e Typo (#497) 2019-12-11 07:09:45 +09:00
Nurbol Alpysbayev
2f4ce50d06 Fix the Wasm blocker for Parser (#495) 2019-12-11 00:02:39 +09:00
강동윤
ef45401a18 Update tests 2019-12-10 10:50:37 +09:00
강동윤
cd486288b7 Bump version 2019-12-10 07:23:27 +09:00
강동윤
ae6de87abb
Add more tests (#489) 2019-12-09 21:02:51 +09: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
강동윤
bc19ee274b Update parser test references 2019-12-02 17:12:53 +09:00
Zimon Dai
ec086a1dab use 2018 edition syntax (#479) 2019-12-02 17:10:05 +09:00
강동윤
776e014a11
Fix tests (#478) 2019-12-01 18:11:59 +09:00
강동윤
153cf36168
Jsonify large pure object literals (#477)
swc_ecma_transforms:
 - add `jsonify` transform
2019-12-01 17:32:44 +09:00
강동윤
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