강동윤
f17e49934c
Add { Load, Resolve }
2020-02-15 12:52:06 +09:00
David Sherret
4550f7e1af
Support type predicate "asserts" with no "is" ( #667 )
2020-02-15 10:44:02 +09:00
강동윤
1fc09caa2f
type-only import, exports ( #662 )
2020-02-13 22:56:13 +09:00
강동윤
f344caa4fa
Reduce binary size ( #663 )
...
This pr add two helper macros to prevent folding type unnecessarily.
This reduces the binary size by 3MB on linux.
2020-02-13 21:55:54 +09:00
kdy1
1b6b916dc9
Fix optimizer ( #661 )
2020-02-13 06:10:39 +00: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
강동윤
64f6e51b42
Unescape template literals before emitting. ( #652 )
...
Fixes #637 .
Fixes #639 .
2020-02-11 13:33:29 +09:00
David Sherret
1bf81c6e85
Fix span of the ExportNamespaceSpecifer ( #651 )
2020-02-11 11:02:37 +09:00
강동윤
8fb7c516d7
Better error message for missing browserslist. ( #650 )
...
Better error message for missing brwoserslist.
Fixes #648
2020-02-10 19:27:56 +09:00
David Sherret
4b7222cbfe
Support export * as ns from "module"
( #647 )
2020-02-10 11:30:25 +09:00
simnalamburt
2341bf95bd
Properly document how to run tests locally ( #646 )
...
### [Click to see rendered document](a9d0617c29/CONTRIBUTING.md (getting-your-development-environment-set-up)
)
It's pretty non-trivial and I think it needs to be simplified.
2020-02-09 19:48:55 +00:00
Hyeon Kim
226336b38b
Fix version of regenerator-runtime ( #644 )
...
7.7.7 is version of @babel/runtime, not regenerator-runtime. Looks like
the intended version was "0.11.0" as you can see in the yarn.lock:
regenerator-runtime@^0.11.0:
version "0.11.1"
resolved "https://registry.yarnpkg.com/regenerator-runtime/-/re ...
integrity sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT9...
Reference:
https://github.com/swc-project/swc/commit/05be89c19
2020-02-10 03:23:10 +09:00
David Sherret
530a5f34db
Support ecmascript private fields when parsing TypeScript. ( #642 )
2020-02-10 03:22:51 +09:00
Hyeon Kim
80d3fe001a
Fix 'fmt' GitHub Actions workflow ( #645 )
2020-02-10 02:35:39 +09:00
kdy1
f8c358c9ac
Strip type-only imports ( #641 )
...
Fixes #640
2020-02-09 11:35:33 +00:00
kdy1
add63826bd
Allow await expression at other than expression statement ( #636 )
...
Fixes #635
2020-02-08 01:49:00 +00:00
dsherret
55c0258017
Remove empty expression in expression statement with top level await ( #630 )
...
Eats the semi-colon.
This doesn't compile (edit: doesn't compile the code in the tests) though because the target of that folder is ES2015. Also, this is kind of strange for me to put the tests in the "typescript" folder. Should we create something more general?
You can take over this PR if you'd like!
2020-02-07 05:33:26 +00:00
강동윤
26eb4e3206
Collect all comments ( #633 )
...
- Comments are now appended
- pin dashmap's version
2020-02-07 14:32:43 +09:00
강동윤
05be89c198
Smaller runtime ( #631 )
...
Replace babel-runtime with regenerator-runtime
2020-02-07 11:19:23 +09:00
강동윤
44e73f5659
Coverage ( #629 )
...
Enable code coverage
2020-02-06 19:36:35 +09:00
dsherret
bf5cff152b
Fix start position on class declarations with decorators ( #628 )
...
Fixes: https://github.com/swc-project/swc/issues/626#issuecomment-582567305
See #581
2020-02-06 00:20:19 +00: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
kdy1
94eac1de89
Top level await ( #627 )
...
Implements a top level await for es2017+, and allow it for typescript and ecmascript (ecmascript requires topLevelAwait: true).
Closes #626 .
2020-02-05 01:05:23 +00:00
kdy1
42373f975b
Fix parsing of declare ( #624 )
...
Previously all children in declare context were marked as `declare`. It's wrong, and I fixed to set declare: true only on the exact node
2020-02-04 02:12:55 +00:00
강동윤
17043ea087
Allow using optional chaning from es
2020-02-02 23:23:59 +09:00
kdy1
196740cdcd
Allow optional chaining in ecmascript ( #619 )
...
Fixes #618
2020-01-31 15:59:47 +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
강동윤
e92923b467
Bump
2020-01-29 12:21:45 +09:00
kdy1
d06eeed352
Async generator ( #613 )
...
Change parser to accept async generator.
Closes #612 .
2020-01-29 02:59:25 +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
강동윤
c5e9781abe
Document architectures
2020-01-23 18:39:04 +09: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
강동윤
ec98516b0e
Update issue templates
2020-01-22 10:58:55 +09: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
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
강동윤
2880250309
Manifest
2020-01-17 18:54:40 +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
강동윤
277d04da4c
Fix
2020-01-16 13:53:44 +09:00
강동윤
44ab37b5a1
extern crate proc_macro ( Fixes #587 )
2020-01-16 13:52:07 +09:00
강동윤
11d056c777
Extract FromVariant ( #586 )
...
Move FromVariant to a separate crate
2020-01-15 18:00:08 +09:00
강동윤
43c3ee7771
Bump version
2020-01-15 09:16:33 +09: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