Commit Graph

28 Commits

Author SHA1 Message Date
강동윤
ba0c7c908c
Improve swc_ecma_trnasforms (#127)
# swc_ecma_ast
 - Add PrivateName to Expr

# swc_ecma_parser
 - Fix parsing of private name

# swc_ecma_transforms

## Hygiene
 - It correctly tracks `BindingIdentifer` / `IdentifierReference`
 - Preserve `IdentiferReference` if it conflicts with a `BindingIdentifier`

## Block scoping
 - It correctly tracks `BindingIdentifer` / `IdentifierReference`


## Fixer
 - It removes useless parens.
 - It removes useless `IdentiferReference`s in comma expressions.

## Classes properties
 - public prooperty
 - private property

## Class decorators
 - implemented
2019-01-29 23:56:16 +09:00
강동윤
ea610c6ded
Typescript & parser for decorators
swc_atoms:
 - add some atoms

swc_ecma_ast:
 - ast nodes for typescript
 - `ClassMethod` -> `Method`, `ClassMethodKind` -> `MethodKind`
 - private class method / class property
 - use separate type for tagged template literals
 - add `declare` field to `Decl`s
 - make function body optional

swc_ecma_parser:
 - rename Type to TokenContext
 - support decorators
 Note: error reporting for invalid decorator is not implemented yet
 - merge `Config` into `Syntax`
 - Use DiagnosticBuilder for error type
This is to make backtracking cheaper.

swc_ecma_transforms:
 - add `strip` pass
2019-01-07 19:43:47 +09:00
강동윤
ab7d46c5bc
Es2015 (#80)
swc_common:
 - implement VisitWith for &T and [T]

swc_ecma_ast:
 - fix codegen of `===`

swc_ecma_parser:
 - fix parsing of array pattern


swc_ecma_transforms:
 - implement es2015::destructuring
 - implement es2015::computed_properties
 - implement es2015::duplicate_keys
 - implement es2015::parameters
 - fix `InjectHelper` pass

Note that getters / setters in class are not supported yet

 - Run execution tests via jest
 - ignore es2016::exponentation tests
2018-11-28 12:24:08 +09:00
강동윤
8b992d6401
improve travis' caching (#75) 2018-11-22 17:28:23 +09:00
강동윤
4e21eb160d travis: don't cache docs 2018-11-17 18:01:29 +09:00
강동윤
67daa279d8
Use rustdoc repository for rustdoc 2018-11-16 21:17:36 +09:00
강동윤
7b56b0bc74
Improve codegen (#57)
* travis: make it faster

* better codegen

* Move enable_comments field to config
2018-11-15 21:43:04 +09:00
강동윤
5cf15cb40f
Fix tests by updating references (#53) 2018-11-14 21:36:37 +09:00
강동윤
56a6429fad
Documentation (#48)
Use own repository for rustdoc.
2018-11-10 19:00:26 +09:00
강동윤
bbd9ec9eb9
travis: fix doc upload (#47) 2018-11-10 18:15:15 +09:00
강동윤
9d7af34aab
Initial release (#45)
common:
 - rename `Folder` to `Fold`
 - folder.then()
 - impl Fold for Box<F>
 - impl Fold<T> for &mut F where F: Fold<T>

transforms:
 - make Simplifier private
 - organize compat

codegen:
 - use `Mark` to avoid deoptimization

swc:
 - upgrade rayon and use global thread pool instead
2018-11-10 17:44:35 +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
강동윤
9843be331b Disable coverage temporarily. 2018-03-02 15:10:08 +09:00
강동윤
8370b78ee0 Enable backtrace and disable incr-comp. 2018-03-01 14:16:47 +09:00
강동윤
056a11dd06 chores: cleanup for docs; no email from travis 2018-01-27 15:14:53 +09:00
강동윤
92c7defc2e fix tests 2018-01-27 11:31:45 +09:00
강동윤
5ff4e759e5 enable travis for master to update docs 2018-01-16 11:54:42 +09:00
강동윤
1f5db00585 Don't build pull requests. 2018-01-15 11:00:02 +09:00
강동윤
1a440157fc ignore coverage of test files 2018-01-14 19:33:57 +09:00
강동윤
e50636535c provide --all to cargo tarpaulin 2018-01-14 19:22:53 +09:00
강동윤
9ec8856136 fix links and use sudo 2018-01-14 19:04:32 +09:00
강동윤
2700ca7c86 Add bors to prevent misktake.
And move reporisotry to swc-project organization.
2018-01-14 14:44:32 +09:00
강동윤
d73de6c5d8 fix typo 2018-01-13 21:23:46 +09:00
강동윤
a2dd670798 Use RUSTCFLAGS for --cfg procmacro2_semver_exempt 2018-01-13 21:20:17 +09:00
강동윤
ed6714f7fc
Drop travis-cargo 2018-01-13 21:04:15 +09:00
강동윤
3b02b27d62
groundwork for docs
Ignore two tests. See #8.

Add code coverage and travis to readme.
2018-01-13 20:42:52 +09:00
강동윤
e949c40517
ECMAScript parser (#1)
- Parser and lexer for lastest ecma spec https://tc39.github.io/ecma262

  - Lexer is currently very inefficient

 - Use https://github.com/tc39/test262-parser-tests/ for testing.

 - Implement proc-macro based ast folder and assert_eq_ignore_span! based on it.

 - Some utilities for proc macro at /macros/common
2018-01-12 16:53:06 +09:00
강동윤
7e2ef3b518 Add .travis.yml 2017-12-23 10:05:19 +09:00