mirror of
https://github.com/swc-project/swc.git
synced 2024-11-23 17:54:15 +03:00
Rust-based platform for the Web
babelcompilerecmascriptecmascript-parserjavascriptparserruststarred-repostarred-swc-project-reposwctypescripttypescript-compilertypescript-parser
4d4e4ce979
swc_ecma_parser: - improve parser's tests It now shows the code failed to parse - allow rest pattern in catch clause - fix parsing of named export (semicolon) swc_ecma_transforms: - implement array spread - add helper methods (objectWithoutProperties) - add some fast paths - make es2015::parameters handle catch clauses - don't show helpers when execution failed - export fixer |
||
---|---|---|
.cargo | ||
.vscode | ||
atoms | ||
common | ||
ecmascript | ||
macros | ||
scripts | ||
src | ||
testing | ||
.gitignore | ||
.gitmodules | ||
.rustfmt.toml | ||
.travis.yml | ||
ARCHITECTURE.md | ||
bors.toml | ||
Cargo.toml | ||
CONTRIBUTING.md | ||
LICENSE-APACHE | ||
LICENSE-MIT | ||
README.md | ||
rust-toolchain |
speedy web compiler
Make the web (development) faster.
swc is rust port of babel and closure compiler.
Installation
Currently this requires nightly version of rust.
npm i -D swc
or
yarn add --dev swc
Features
Transforms
New generation javascript to old-days javascript.
-
es3
- member-expression-literals
- property-literals
- reserved-words
-
es5
- property-mutators
-
es2015
- arrow-functions
- block-scoped-functions
- block-scoping
- Note: this might be buggy (at this time)
- classes
- computed-properties
- destructuring
- duplicate-keys
- for-of
- function-name
- instanceof
- literals
- new-target
- object-super
- parameters
- shorthand-properties
- spread
- sticky regex (
y
flag) - template-literals
- invalid escape sequences inside tagged template literals. (aka es2018)
- typeof-symbol
- unicode-regex
-
es2016
- exponentiation-operator
-
es2017
- async-to-generator
-
es2018
- async-generator-functions
- dotall-regex
- object-rest-spread
- Using symbol as a key
- optional-catch-binding
- unicode-property-regex
Performance
The benchmarks were run on Macbook pro, dual core, 2.3GHz Intel Core i5, 16 GB ram
performance | |
---|---|
swc (ffi) | 1,086 ops/sec ±0.77% (84 runs sampled) |
swc-optimize (ffi) | 1,060 ops/sec ±0.63% (87 runs sampled) |
swc (ffi, simd) | 1,295 ops/sec ±0.87% (89 runs sampled) |
swc-optimize (ffi, simd) | 1,270 ops/sec ±0.24% (89 runs sampled) |
babel | 65.72 ops/sec ±6.45% (62 runs sampled) |
Contributing
See CONTRIBUTING.md. You may also find the architecture documentation useful (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.