swc_common:
- `SourceMap`: Don't panic for dummy spans.
swc_ecma_codegen:
- Use span for `throw`. (#1685)
- Use span for `var` / `let` / `const`.
- Use span for `new`.
- Use span for `if`.
- Add spans to braces of a block statement. (#1796)
swc_ecma_transforms_compat:
- `parameters`: Don't drop the span of block statements. (#1796)
swc:
- Allow specifying input source map in `.swcrc`.
- Ensure that the inline source map works properly. (#1713)
swc_ecma_transforms_base:
- `fixer`: Wrap operand of a unary expression if it's a binary expression. (#1781, #1789)
swc_ecma_transforms_module:
- Allow multiple `export *` even if it has the same item. (#1780)
swc_bundler:
- Ensure that denoland/deno#10141 is fixed.
- Run deno tests on ci.
- Support nested `export *`. (denoland/deno#10153, denoland/deno#10174)
swc_ecma_codegen:
- Remove `,` after rest elements. (#1573, denoland/deno#10167)
swc_ecma_transforms_optimization:
- Don't drop items used by the discriminant of a switch.
swc_ecma_transforms_typescript:
- Remove constructors without a body.
swc_ecma_parser:
- Support `private declare`. (#1503)
- Recover `backtracking` state while doing some nested backtracking. (#1505)
- Allow using `readonly` as the name of class properties. (#1514)
swc_ecma_transforms_base:
- `hygiene`: Keep the name of class expressions. (#1507)
swc_ecma_transforms_typescript:
- Allow a namespace and a class to have the same name. (#1515)
swc:
- Disable `tsx` if the ext of a file is ts.
swc_ecma_utils:
- Use `&mut` for inject_after_super.
swc_ecma_transforms_typescript:
- Merge `typescript_class_properties` into `strip`.
Co-authored-by: 강동윤 <kdy1997.dev@gmail.com>
swc:
- Use `hygiene_with_config` instead. (#1279)
- Allow enabling source map with `.swcrc`. (#1309)
swc_ecma_transforms_base:
- `hygiene`: Add an option to preserve class names. (#1279)
swc_ecma_transforms_compat:
- `block_scoping`: Allow using `break` in switch cases. (#1415)
swc_bundler:
- Create variables for export while preparing a module. (denoland/deno#9560)
- Fix order of statements.
- Invoke dce multiple time if required. (denoland/deno#9546)
swc_ecma_transforms_optimization:
- dce: Track modifications correctly.
swc_bundler:
- Improve performance
- Use `Vec<AHashSet<usize>>` instead of `AHashSet<(usize, usize)>`.
- Fix statement orderings. (denoland/deno#9464)
- Fix wrapped esm mixed with circular imports. (denoland/deno#8224)
- Store content of wrapped esm at top level. (denoland/deno#8224)
swc_ecma_parser:
- Do not emit strict mode error while backtracking. (#1252)
swc_ecma_transforms_proposal:
- Handle decorator on methods with computed key.
swc_bundler:
- Add a testing system for constant inliner.
swc_ecma_transforms_optimization:
- const_propagation: Handle export specifiers.
- const_propagation: Handle inlining of variables whose initializer is inlined.
- dce: Allow dropping identifiers used in `exported` part of export specifiers.
swc_bundler:
- Splitted from spack
swc_ecma_parser:
- Fix unexpected eof problem which occurs if log level is trace
swc_ecma_transforms:
- Fix bugs of dce pass
spack:
- Support cyclic dependencies
testing:
- Remove dependency on relative_path
swc_common:
- Span's byte positions are now self-contained and `GLOBALS` is not required while parsing.
- Changed `Comments` into a trait.
- Provide single-threaded implementation of `Comments`
- Cargo feature `tty-emiiter` (To remove tty related stuffs )
- Cargo feature `sourcemap` (To remove sourcemap for web assets)
- Removed dependency on dashmap
swc_ecma_parser:
- No duplicated comments.
- Removed dependency on once_cell and regex
- Add a test suite to visualize and test span of nodes.
swc_ecma_utils:
- Removed dependency on parser
swc:
- Remove dependency on derive_more and path-clean
- Add multi-threaded implementation of `Comments`
swc_ecmascript:
- A new crate contains `ast`, `codegen`, `parser`, `utils`, `visit`.
The commit will help
- Better testing
- Preventing regression like #785.
- **Implementing spack** (It requires access to neon api because of the plugin system)
- codegen-units = 1 for benchmarks
swc_ecma_parser:
- Add a benchmark for typescript lexer
- Remove dynamic dispatch in lexer
- Improve performance of typescript
swc_common:
- update rustc-ap crates to v313
swc_ecma_ast:
- use bool instead of Option<Span>
swc_ecma_parser:
- remove LexerInput
- use uncons_while
- assert only on debug mode
- use Visit instead of Fold while verifying
- replace debug! with trace!
- disable logging while benchmarking
- drop slog
swc_ecma_transforms:
- classes: fold Decl instead of Stmt
swc:
- add nodejs binding
`Map<T>` adds a method named `map` which is actually `Box<T>` -> `Box<T>` without reallocation.
swc_ecma_transforms:
- chain_at!(Type, passes)
This macro deeply joins path at 'Type' level.
ecma_transforms:
- implement es2015::instanceof
- implement es2015::typeof_symbol
- implement inline_globals pass
ecma_parser:
- `PResult<T>` is now `Result<T, ()>` and `Err(())` means that an error is emitted.
- add docs
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
- 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