강동윤
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
강동윤
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
강동윤
6fc91f2017
Remove #[inline(never)]
2019-12-13 08:47: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
강동윤
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
강동윤
30869dc340
Fix template_literal in a script
2019-12-10 11:57:22 +09:00
강동윤
ae6de87abb
Add more tests ( #489 )
2019-12-09 21:02:51 +09:00
강동윤
69e768e6bd
Fix codegen of typescript enum ( #488 )
...
swc_ecma_trnsnofrms
- Handle export enum
2019-12-04 10:08:17 +09:00
강동윤
b4e93f2b53
Handle catch clause properly ( #484 )
...
swc_ecma_transforms
- Fix #483
2019-12-03 11:50:33 +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
Zimon Dai
ec086a1dab
use 2018 edition syntax ( #479 )
2019-12-02 17:10:05 +09:00
강동윤
153cf36168
Jsonify large pure object literals ( #477 )
...
swc_ecma_transforms:
- add `jsonify` transform
2019-12-01 17:32:44 +09:00
강동윤
3f2477196c
Fix typescript enum
2019-12-01 11:27:28 +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
강동윤
107c35fb41
Fix renaming bug related to import ( #457 )
...
- Fix renaming bug related to import (#456 )
- Add tests for common_js / umd / amd
2019-11-20 21:32:42 +09:00
강동윤
210686011d
Resolver: Handle hoisting ( #455 )
...
swc_ecma_transforms:
- resolver: Handle variable hoisting
- resolver: Handle function hoisting
2019-11-19 19:10:15 +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
강동윤
350f609afd
Allow accessing same constant from static property and constructor ( #445 )
...
Fix #443 .
2019-11-15 18:36:43 +09:00
강동윤
37b80dfd08
Optional chaining for typescript ( #444 )
...
Implement typescript 3.7's optional chaining
2019-11-15 14:34:48 +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
강동윤
076957661d
Fix a test
2019-11-10 15:23:40 +09:00
강동윤
264dcf0d7b
Fix #439
2019-11-10 13:21:44 +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
강동윤
01b1cc1a5e
Update rustfmt
2019-10-19 12:21:56 +09:00
dependabot[bot]
2ca5aa5766
Bump js-yaml from 3.12.0 to 3.13.1 in /ecmascript/transforms ( #426 )
...
Bumps [js-yaml](https://github.com/nodeca/js-yaml ) from 3.12.0 to 3.13.1.
- [Release notes](https://github.com/nodeca/js-yaml/releases )
- [Changelog](https://github.com/nodeca/js-yaml/blob/master/CHANGELOG.md )
- [Commits](https://github.com/nodeca/js-yaml/compare/3.12.0...3.13.1 )
Signed-off-by: dependabot[bot] <support@github.com>
2019-10-05 14:14:38 +09:00
dependabot[bot]
451f5938c9
Bump mixin-deep from 1.3.1 to 1.3.2 in /ecmascript/transforms ( #428 )
...
Bumps [mixin-deep](https://github.com/jonschlinkert/mixin-deep ) from 1.3.1 to 1.3.2.
- [Release notes](https://github.com/jonschlinkert/mixin-deep/releases )
- [Commits](https://github.com/jonschlinkert/mixin-deep/compare/1.3.1...1.3.2 )
Signed-off-by: dependabot[bot] <support@github.com>
2019-10-05 14:14:26 +09:00
dependabot[bot]
2c9f2e1f68
Bump handlebars from 4.0.12 to 4.4.0 in /ecmascript/transforms ( #429 )
...
Bumps [handlebars](https://github.com/wycats/handlebars.js ) from 4.0.12 to 4.4.0.
- [Release notes](https://github.com/wycats/handlebars.js/releases )
- [Changelog](https://github.com/wycats/handlebars.js/blob/v4.4.0/release-notes.md )
- [Commits](https://github.com/wycats/handlebars.js/compare/v4.0.12...v4.4.0 )
Signed-off-by: dependabot[bot] <support@github.com>
2019-10-05 14:14:13 +09:00
dependabot[bot]
09e911bec8
Bump lodash from 4.17.11 to 4.17.15 in /ecmascript/transforms ( #427 )
...
Bumps [lodash](https://github.com/lodash/lodash ) from 4.17.11 to 4.17.15.
- [Release notes](https://github.com/lodash/lodash/releases )
- [Commits](https://github.com/lodash/lodash/compare/4.17.11...4.17.15 )
Signed-off-by: dependabot[bot] <support@github.com>
2019-10-05 14:13:59 +09:00
강동윤
9f1fca55ff
Update rustc toolchain to nightly-2019-09-30
2019-10-02 13:53:56 +09:00
강동윤
3a637d4229
fix this
in async generator ( #425 )
...
swc_ecma_transforms:
- Don't delete test file when an execution test fails
- fix #400
2019-10-01 23:42:05 +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
강동윤
febe34e280
Publish swc_ecma_transforms
2019-09-22 17:55:35 +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
강동윤
bf70946546
Fix #417
...
process.env['X'] is now supported
2019-09-18 16:15:13 +09:00
강동윤
5a47c7a15c
Fix 1 - (1 - 1)
( #418 )
2019-09-18 16:05:36 +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
강동윤
54cf8fbb96
Fix ( #398 )
...
swc_ecma_transforms:
- Fix resolver (#396 )
- Add tests for #395
2019-06-16 10:22:15 +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
Erik Desjardins
07bf194e61
Simplify: left.rhs * right
is only safe when operators are the same
2019-05-16 14:10:06 -04:00
강동윤
b5bbbc0cd6
publish atoms
2019-05-02 16:06:42 +09:00
강동윤
0b4f06027d
Version
2019-05-02 16:02:45 +09:00
강동윤
ed64a60cb3
Publish ast / codegen /transforms
2019-05-02 15:50:21 +09:00
강동윤
786117c16c
Fix #382
2019-04-30 22:32:06 +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
강동윤
0ffd075588
Strip bodyless functions.
...
Closes #357 .
2019-04-11 21:20:50 +09:00
강동윤
9e333a153c
Fix #366
2019-04-11 21:11:21 +09:00
강동윤
ca220342e0
Fix #365
2019-04-11 21:04:06 +09:00
강동윤
56be56acea
Fix lints
2019-04-11 21:01:29 +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
강동윤
5114dc9e95
Extract resolver pass ( #344 )
2019-03-14 15:54:33 +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
강동윤
2025f20e8c
Handle imported stuffs in shorthand property. ( #333 )
...
swc_ecma_transforms:
- handle imported stuffs in shorthand property (#332 )
2019-03-10 22:17:08 +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
강동윤
dd5f17463e
hygiene now handles class name correctly ( #323 )
2019-03-07 22:42:16 +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