Commit Graph

574 Commits

Author SHA1 Message Date
강동윤
8f280c535c
Performance (#696)
- Parser performance is improved by ~15%
 - Codegen performance is improved by ~90% (when comment and source map is enabled)
2020-03-01 20:05:03 +09:00
강동윤
99b5018ba6
Fix ts enum with initializer (#694) 2020-02-29 14:54:10 +09:00
강동윤
3911ab75b9 Bump version 2020-02-29 10:34:10 +09:00
David Sherret
0e8c5a6c93
Fix assignment pattern start when there is a type annotation (#693)
- Update dashmap to 3.5.1

Co-authored-by: 강동윤 <kdy1997.dev@gmail.com>
2020-02-29 10:29:34 +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
강동윤
cb43a69e02
implement { Hash, Eq } for ast nodes (#684)
As NaN is`IIdent` not `Number`, we can use implement Hash and Eq for ast nodes.
2020-02-21 12:47:06 +09:00
강동윤
e3ca8e5d13
Fix bugs (#683)
- Fix block_scoping (Fix #682)
 - Handle new.target in susbscript position (Fix #675)
2020-02-20 13:06:28 +09:00
강동윤
15bef97278
VisitMut<T> and VisitMutwith<F> (#680)
This is a groundwork for dts generator.
2020-02-19 23:13:08 +09:00
강동윤
f79223e98c
resolver: Handle method property correctly (#679) 2020-02-19 19:49:58 +09:00
강동윤
087e768810 Bump version 2020-02-19 12:55:41 +09:00
David Sherret
0d17f014e3
Fix tagged template span to include tag. (#677) 2020-02-19 12:50:07 +09:00
강동윤
53d09d448e
Handle await-for loop just like babel (#676) 2020-02-18 12:27:13 +09:00
강동윤
4a92f5751a
CI improvement (#674) 2020-02-18 11:36:56 +09:00
강동윤
e709da9d55
Fix SourceMap (#672)
Previously, `SourceMap` (taken from rustc) has a bug which reuses start position when new_source_file is invoked concurrently.
2020-02-17 15:56:41 +09:00
강동윤
30e08a55a7 Fix coverage 2020-02-17 10:47:12 +09:00
강동윤
36aeac8639
Coverage (#670)
Add a script to calculate coverage
2020-02-16 21:06:25 +09:00
강동윤
64ed0bd801
Validate sourcemap (#669) 2020-02-16 16:51:42 +09:00
강동윤
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