swc is a community-driven project, and is maintained by a group of [volunteers](https://opencollective.com/swc#team). If you'd like to help support the future of the project, please consider:
- Giving developer time on the project. (Message us on [Slack](https://swc-org.slack.com/) for guidance!)
- Giving funds by becoming a sponsor (see below)! [Slackin for swc](https://swc-slackin.herokuapp.com)
## Open Collective Sponsors
Become a sponsor and get your logo on our README on Github with a link to your site. [[Become a sponsor](https://opencollective.com/swc#sponsor)]
Gold Sponsors
Silver Sponsors
Bronze Sponsors
Backers
[Become a backer](https://opencollective.com/swc#backer) and get your image on our README on Github with a link to your site.
# Documentation
Check out the documentation [in the website](https://swc-project.github.io/docs/installation).
# Features
## Parsers
- [x] es2019
- [x] jsx
- [x] typescript
## Transforms
New generation javascript to old-days javascript.
- es3
- [x] member-expression-literals
- [x] property-literals
- [x] reserved-words
- es5
- [ ] property-mutators
- es2015
- [x] arrow-functions
- [x] block-scoped-functions
- [x] block-scoping
- [x] classes
- [x] computed-properties
- [x] destructuring
- [x] duplicate-keys
- [x] for-of
- [x] function-name
- [x] instanceof
- [x] literals
- [x] new-target
- [ ] object-super
- [x] parameters
- [x] shorthand-properties
- [x] spread
- [x] sticky regex (`y` flag)
- [x] template-literals
- [ ] invalid escape sequences inside tagged template literals. (aka es2018)
- [x] typeof-symbol
- [ ] unicode-regex
- es2016
- [x] exponentiation-operator
- es2017
- [x] async-to-generator
- es2018
- [ ] async-generator-functions
- [ ] dotall-regex
- [x] object-rest-spread
- [ ] Using symbol as a key
- [x] optional-catch-binding
- [ ] unicode-property-regex
- es2019 (stage 4)
- [x] optional catch binding
- [x] big int literal
- stage 3
- [x] class fields
- [x] numeric separator
- [ ] nullish coalescing
- stage 2
- [x] decorators
- react
- [x] jsx
# Performance
The lower bound of the speedup compared to babel is **18**. The benchmarks were run on Macbook pro, dual core, 2.3GHz Intel Core i5, 16 GB ram
| | performance |
| ------------------ | :------------------------------------: |
| swc (es3) | 761 ops/sec ±0.23% (89 runs sampled) |
| swc (es2015) | 800 ops/sec ±1.02% (87 runs sampled) |
| swc (es2016) | 2,123 ops/sec ±0.84% (88 runs sampled) |
| swc (es2017) | 2,131 ops/sec ±1.13% (90 runs sampled) |
| swc (es2018) | 2,981 ops/sec ±0.25% (90 runs sampled) |
| swc-optimize (es3) | 712 ops/sec ±0.21% (86 runs sampled) |
| babel | 41.75 ops/sec ±8.07% (56 runs sampled) |
## Contributing
See [CONTRIBUTING.md](CONTRIBUTING.md). You may also find the architecture
documentation useful ([ARCHITECTURE.md](ARCHITECTURE.md)).
## License
swc is primarily distributed under the terms of both the MIT license
and the Apache License (Version 2.0).
See LICENSE-APACHE and LICENSE-MIT for details.
[babel]: https://github.com/babel/babel
[closure compiler]: https://github.com/google/closure-compiler
[rust]: https://www.rust-lang.org