강동윤
65f2faa339
Reduce stack usage ( #776 )
2020-05-17 18:50:52 +09:00
강동윤
ddc5ace570
dce: Separate phase for dropping imports ( #764 )
2020-05-09 12:22:45 +09:00
강동윤
14f5212d3d
Wasm ( #691 )
2020-05-07 18:17:57 +09:00
강동윤
37bfb79b02
Fix dead code elimination pass ( #762 )
2020-05-05 20:10:30 +09:00
강동윤
8615d69ac3
Fix bugs ( #758 )
...
swc_ecma_transforms:
- Module passes resolver pass now shares 'global' context (Closes #724 )
- TypeScript enums are treated as concrete (Closes #757 )
2020-04-30 23:48:52 +09:00
강동윤
cdf1772bf1
Fix declare ( #747 )
2020-04-10 22:26:29 +09:00
강동윤
09279432c4
Do not depend on hashbrown ( #744 )
2020-04-03 10:33:35 +09:00
강동윤
706ae00523
Fix deeply nested optional chaining ( #735 )
...
- Handle deeply nested optional chaining expression correctly (Closes #732 )
2020-03-28 11:59:45 +09:00
Muslim Guseinov
6a6013b14c
Fix enum default value transform ( #730 )
2020-03-26 10:53:35 +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
강동윤
99b5018ba6
Fix ts enum with initializer ( #694 )
2020-02-29 14:54:10 +09:00
강동윤
363b8353cf
resolver: handle hoisting correctly ( #689 )
2020-02-25 21:29:52 +09:00
강동윤
1cf86b059d
Fix bugs ( #687 )
...
- stript type-only export default
- allow `continue` in a for loop
2020-02-22 14:49:04 +09:00
강동윤
1fc09caa2f
type-only import, exports ( #662 )
2020-02-13 22:56:13 +09:00
강동윤
f26ef0cfb7
Fix optimizer ( #661 )
2020-02-13 15:03:38 +09:00
강동윤
348052b017
Improve optimizer ( #660 )
...
Although it's quite naive at the moment, I added two optimization passes.
- dead code elimination (Closes #607 )
- inlining
2020-02-13 11:45:14 +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
kdy1
f8c358c9ac
Strip type-only imports ( #641 )
...
Fixes #640
2020-02-09 11:35:33 +00:00
강동윤
05be89c198
Smaller runtime ( #631 )
...
Replace babel-runtime with regenerator-runtime
2020-02-07 11:19:23 +09:00
alubbe
45604fa6e7
Remove dependency renaming to enable WASM ( #625 )
...
This PR supercedes https://github.com/swc-project/swc/pull/621 and tries to remove dependency renaming to enable WASM, as discussed in https://github.com/swc-project/swc/issues/106
2020-02-05 11:20:25 +00: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
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
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
강동윤
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
강동윤
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
강동윤
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
강동윤
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
강동윤
30af06bb70
Ast ( #513 )
...
swc_ecmascript:
- add `ExprStmt`.
- change type of regex.expression and regex.flags.
2019-12-16 18:08:21 +09:00
Zimon Dai
ec086a1dab
use 2018 edition syntax ( #479 )
2019-12-02 17:10:05 +09:00
Jasper De Sutter
716bfe05b2
Cleanup ( #448 )
...
- cargo fix
- update all crates to 2018 edition
2019-11-17 13:21:53 +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
강동윤
2e5c81ee8e
Fix parsing readonly array and tests
...
Closes #432
2019-10-23 20:20:17 +09:00
강동윤
9f1fca55ff
Update rustc toolchain to nightly-2019-09-30
2019-10-02 13:53:56 +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
강동윤
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
강동윤
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
강동윤
3fc360d870
Make sourcemap optional
2019-02-17 23:25:35 +09:00
강동윤
9bd7a9c484
Perfect fixer ( #212 )
...
swc_ecma_transforms:
- test fixer using test262
- make fixer perfect
2019-02-14 21:12:05 +09:00
강동윤
eb2a2a7f15
Fix tests and lints ( #44 )
...
- Temporarilly ignored comment codegen tests.
- Split Simplify into SimplifyExpr and SimplifyStmt
- fix lints
2018-11-05 13:12:52 +09:00
강동윤
e12dcf0452
Compiler baseline
...
- Fix binary
- Add base for transformers
This will be last large squash.
2018-11-03 16:56:43 +09:00
강동윤
fd5b4d0dc0
Revert "Merge remote-tracking branch 'refs/remotes/origin/simplifier'"
...
This reverts commit 43fcbcbef2
, reversing
changes made to 15fde7b5ff
.
2018-01-14 14:00:01 +09:00
강동윤
b778f0c398
Rebase
2018-01-14 13:37:32 +09:00
강동윤
5a1c844549
[WIP] simplifier
2018-01-14 13:33:09 +09:00