Donny/강동윤
b0361caa58
feat(es/transforms/optimization): Improve inline_globals
( #2479 )
...
swc_ecma_transforms_optimization:
- `inline_globals`: Support inlining into shorthand properties.
- `inline_globals`: Support replacing member expressions.
swc:
- Add an option to disable simplifier when using `inline_globals`.
node_swc:
- Improve error message on panic.
2021-10-19 14:58:10 +00:00
Donny/강동윤
2ca6e5d79b
feat(es/transforms/optimization): Support inlining of typeof
s ( #2473 )
...
swc_ecma_transforms_optimization:
- `inline_globals`: Support inlining of `typeof`s.
swc:
- Change error message for parsing failure to mention `Syntax Error`.
2021-10-19 09:49:18 +00:00
Donny/강동윤
123c1f5d02
chore: Fix typo ( #2472 )
2021-10-19 08:25:57 +00:00
Donny/강동윤
28f2c7ae5d
feat(swc): Accept map for envs
( #2467 )
...
swc:
- Support specifying map to global inlining pass.
2021-10-19 05:13:21 +00:00
Donny/강동윤
575aa44c25
perf(es/transforms): Improve performance ( #2454 )
...
swc_ecma_transforms_macros:
- `#[parallel]`: Run hooks for single-threaded operations.
swc_ecma_transforms_compat:
- `shorthand`: Parallel.
- `exponentation`: Parallel.
- `parameters`: Parallel.
- Recover some `#[fast_path]`
2021-10-18 12:07:13 +00:00
Donny/강동윤
9ba68c6863
fix(common): Fix sourcemap ( #2457 )
...
swc_common:
- Include the index to the name in `mappings` of a sourcemap.
swc:
- Fix handling of `inputSourceMap`.
2021-10-18 06:43:59 +00:00
Donny/강동윤
1645bb30b7
perf(es/transforms): Reduce usage of #[fast_path]
( #2442 )
...
swc_ecma_ast:
- Implement `Take` for `ObjectLit`.
- Implement `Take` for `ArrayLit`.
swc_ecma_transforms_compat:
- `nullish_coalescing`: Remove exponential visit.
- `nullish_coalescing`: Migrate to `VisitMut`.
- `optional_chaining`: Reduce exponential visit. (But it's not removed)
- `class_properties`: Remove exponential visit.
- `jsx_src`: Migrate to `VisitMut`.
- `optional_chaining`: Mae it parallel.
- `async_to_generator`: Remove `#[fast_path]`.
- `arrow`: Remove `#[fast_path]`.
- `destructuring`: Remove `#[fast_path]`.
- `block_scoped_functions`: Remove `#[fast_path]`.
- `classes`: Remove `#[fast_path]`.
2021-10-16 08:12:02 +00:00
Donny/강동윤
4c983e9158
perf(es/codegen, es/parser): Improve performance ( #2406 )
...
ast_node:
- Make `.span()` inlinable.
swc_ecma_codegen:
- Reduce call to *heavy* `.span()` calls.
swc_ecma_parser:
- Reduce `memmove` by using typed-arena.
swc_bundler:
- Make `Bundle.bundle` take `&mut self`.
- Make drop concurrent.
2021-10-15 12:49:37 +09:00
Donny/강동윤
8074c72ce9
fix(es/transforms/base): Fix hyigiene
( #2421 )
...
swc_ecma_transforms_base:
- `hygiene`: Considering scoping of `var`.
- `hygiene`: Avoid creating too many `JsWord` by caching index.
2021-10-13 17:32:37 +09:00
Donny/강동윤
ac3fbd91ac
perf(bundler): Improve performance ( #2384 )
...
*:
- Use `ahash` instread of `rustc-hash`.
swc_ecma_transforms_optimization:
- Make `dce` parallel.
2021-10-09 08:08:13 +00:00
Donny/강동윤
d0342a5a58
feat(swcpack): Enable concurrent mode ( #2356 )
...
swc_common:
- Use `Mutex` from `parking_lot` instead of it from std.
swc_bundler:
- Use `fxhash` if possible.
- Don't `clone()` all modules if the entry has only one item.
swc_ecma_loader:
- `NodeModulesResolver`: Use `path-clean` instead of `canonicalize`.
swc_ecma_transforms_optimization:
- Reimplement `dce`
node_bundler:
- Enable `concurrent` of `swc_bundler`.
2021-10-08 16:47:01 +09:00
Donny/강동윤
6d35e7c28d
fix(swc): Fix order of custom passes ( #2347 )
...
swc:
- Invoke `resolver` and `typescript::strip` before applying user passes.
2021-10-05 20:46:49 +00:00
Donny/강동윤
fac6f47863
perf(es/transforms): Improve performance ( #2329 )
...
swc_ecma_ast:
- Implement `Take` for `Function`.
- Implement `Take` for `FnExpr`.
- Implement `Take` for `ClassExpr`.
swc_ecma_transforms_compat:
- Migrate `es2015::duplicate_keys` to `VisitMut`.
- Migrate `es2015::template_literals` to `VisitMut`.
- Migrate `es2015::function_name` to `VisitMut`.
- Add more fast-path to `reserved_words` pass.
swc_ecma_transforms_react:
- Reduce allocations of `pure_annotations`.
- Migrate `pure_annotations` to `VisitMut`.
- Migrate `jsx::display_name` to `VisitMut`.
swc_ecma_transforms_optimization:
- Migrate `inline_globals` to `VisitMut`.
- `inline_globals`: Use `Lrc<FxHashMap<K, V>>`.
swc:
- Cache `current_dir()`.
- `ModuleConfig::build`: cacnonicalize only if `paths` is used.
2021-10-05 13:31:35 +00:00
Donny/강동윤
8403057268
fix(es/minifier): Don't optimize new String
. ( #2341 )
...
swc_ecma_transforms_optimization:
- Don't optimize calls like `new String`.
2021-10-04 06:44:37 +00:00
Donny/강동윤
a7357ab517
chore: Update rustc ( #2332 )
2021-10-01 12:11:17 +00:00
Donny/강동윤
650e1494d4
fix: Migrate dependencies ( #2307 )
...
*:
- Migrate from `log` to `tracing`. (#2284 )
- Migrate from `fxhash` to `rustc-hash`.
swc_common:
- Add a cargo feature named `debug`.
2021-09-27 09:19:15 +00:00
Donny/강동윤
180dc31550
fix(es/transforms/base): Fix hygiene
pass ( #2266 )
...
swc_ecma_transforms_base:
- `hygiene`: Consider nested scopes correctly. (#2211 )
- `hygiene`: Fix handling of constructors.
2021-09-21 12:21:49 +00:00
강동윤
48d61039d2
fix(common, node/swc): Allow inlining sourcesContent
( #2245 )
...
swc_common:
- Allow setting `sourceContents` of source map files. (#2218 )
swc:
- Support `inlineSourceContents`. (#2244 )
2021-09-14 02:31:32 +00:00
Iron Lu
4ca85ec79c
feat(node/swc): Enable tsx automatically based on the extension ( #2230 )
2021-09-14 10:47:53 +09:00
강동윤
9ffe47106a
fix(swc): Fix target
( #2226 )
...
swc:
- Fix `target` option. (#2225 )
2021-09-10 15:43:14 +09:00
강동윤
2c477780f0
fix(es): Fix bugs ( #2222 )
...
swc_ecma_parser:
- Don't panic on `typeof import(T)`. (#2198 )
- Fix parsing of ternary. (#2196 )
swc_ecma_transforms_base:
- `fixer`: Handle unary in lhs of an exponentation expression. (#2191 )
swc_ecma_transforms_compat:
- Use variable for `this` in arrow expressions. (#2212 )
swc_ecma_visit:
- Add a trait `InjectVars`.
node_swc:
- Increease recursion limit while deserializing. (#2223 )
2021-09-09 20:45:20 +09:00
Kitson Kelly
87f30b21a3
feat(common): Add variants to FileName
( #2202 )
2021-09-03 13:55:31 +09:00
강동윤
cb2b0c671f
fix(es/transforms/base): Optimize hygiene
( #2193 )
...
swc_ecma_transforms_base:
- `hygiene`: Don't rename if not required. (#1600 )
swc_ecma_minifier:
- Remove `hygiene_optimizer`.
2021-09-01 13:11:55 +00:00
강동윤
a8cb554be5
feat: Expose .take()
( #2190 )
...
swc_common:
- Add `Take`. (#2189 )
swc_ecma_ast:
- Implement `Take` for ast nodes.
swc_ecma_transforms_base:
- Remove `MapWithMut`.
2021-08-31 14:45:48 +00:00
강동윤
d975a197c9
fix(es): Fix source map ( #2159 )
...
swc:
- Fill `names` of sourcemap.
- Don't add `sourceContents` to sourcemap if `sources` is added.
node_swc:
- Handle source map for `minify` correctly.
- `minify`: Accept `{ filename: code }`.
2021-08-26 10:44:38 +00:00
강동윤
e468752ebc
fix(es/minifier): Fix usage via yarn resolution ( #2158 )
...
swc_common:
- Deprecate some unused types.
swc:
- `BoolOrObject`: Improve the error message for deserialization failure.
- `BoolOrObject`: Treat an empty object as `true`.
- `JsMinifyFormatOptions`: Add fields. (#2153 )
node_swc:
- Improve error message for deserialization failure.
2021-08-26 06:18:59 +00:00
강동윤
b0278242ba
fix(bundler): Fix handling of reexports from cjs modules ( #2143 )
...
swc_bundler:
- Handle reexports from cjs modules. (#2124 )
- Inject `__spack_require__` helper if required.
2021-08-24 07:20:15 +00:00
강동윤
c78baef2cc
fix(es/transforms/compat): Implement new.tartet
( #2129 )
...
swc_ecma_transforms_compat:
- Handle `new.target`. (#1179 )
2021-08-22 06:56:49 +00:00
muji
61e58d7329
feat(bundler): Support replacing any environment variables ( #2121 )
2021-08-21 16:45:59 +09:00
강동윤
6896a83d54
fix(es/codegen): Fix codegen of ~
( #2104 )
...
swc_ecma_codegen:
- Emit pending semi on `~`. (#2091 )
2021-08-19 17:21:08 +09:00
강동윤
879a0f39a8
feat(swc): Implement format.comments
of terser ( #2095 )
...
swc:
- `minify`: Support `format.comments`.
- `process_js`: Support `jsc.minify.format.comments`.
2021-08-17 14:34:37 +00:00
muji
e84ed13ffe
feat(es/loader): Support more types for browser
in package.json ( #2060 )
2021-08-16 17:34:53 +09:00
강동윤
f6aabfce9c
perf: Use ahash instead of sip hash ( #2073 )
...
swc_common:
- Add `AHashMap`.
- Add `AHashSet`.
2021-08-14 10:33:16 +00:00
강동윤
b0c41bb3f2
chore: Cleanup codes for fixture testing ( #2070 )
2021-08-14 06:34:04 +00:00
강동윤
883c1ac4e4
fix(bundler): Prepare renaming of bundler ( #2066 )
...
- Rename `spack` crate to `swc_node_bundler`. (#1113 )
2021-08-13 10:03:04 +00:00
LongYinan
fe2a063525
perf(node/swc): Use mimalloc ( #2068 )
2021-08-13 18:39:13 +09:00
강동윤
c6dce67494
fix(swc): Report error correctly ( #2065 )
...
swc_common:
- Add some utilities for `Handler`.
swc:
- Remove `Compiler.handler`.
- Accept `handler` for each operations. (#2035 )
2021-08-13 07:05:40 +00:00
muji
cfc3725dbb
feat(bundler): Support paths
( #2054 )
...
swc_ecma_ast:
- Implement more traits for `TargetEnv`.
swc_ecma_loader:
- `NodeModulesResolver`: Support aliasing.
2021-08-12 14:30:49 +09:00
muji
2151366b93
feat(es/loader): Support target runtime environment. ( #2045 )
...
swc_ecma_ast:
- Add `TargetEnv`.
swc_ecma_loader:
- Support specifying target environment.
2021-08-10 15:36:10 +09:00
강동윤
9793926cc8
fix(es/minifier): Fix bugs and implement more rules ( #2032 )
...
swc_ecma_minifier:
- Fix an infinite loop. (#2028 )
- Don't remove span hygiene. (#2022 )
swc_ecma_codegen:
- Fix codegen of `return` with `async` arrow. (#2020 )
swc:
- Respect `minify = false`. (#2019 )
2021-08-08 14:19:04 +00:00
OJ Kwon
abb1451061
fix(node/swc): Allow specifying filename when parsing ( #2031 )
2021-08-08 20:14:45 +09:00
강동윤
f44e25c3af
fix(es/minifier): Improve output of minifier ( #1990 )
...
swc_common:
- Add `Span.has_mark`.
swc_ecma_codegen:
- Emit `1e3` for `1000`.
- Optimize output. (#1986 )
swc_ecma_minifier:
- name mangler: Don't use keywords as an id.
- `properties`: Optimize member expression with string properties.
- `inline`: Inline some function expressions even if it's not fn-local.
- `analyzer`: Track reassignment correctly.
- `analyzer`: Track fn-local correctly.
- `sequences`: Inject `void` if required.
- `inline`: Inline function declarations correctly.
- `sequences`: Merge expressions into test of if statements.
- `sequences`: Reduce calls to an assigned variable.
- Use `Marks` instead of `&dyn Comments`.
swc_ecma_transforms_optimization:
- `expr_simplifier`: Fix infinite loops.
node/swc:
- Ensure that `.transform` performs minification. (#1989 )
2021-08-04 00:52:47 +09:00
강동윤
e916b35dd2
feat(node/swc): Support sourceFileName
( #1976 )
...
swc:
- Support `sourceFileName`.
2021-08-03 00:49:34 +09:00
강동윤
d1c481790c
feat(swc): Expose minifier api ( #1978 )
...
swc_ecma_codegen:
- Fix codegen of imports when minification is enabled.
swc_ecma_minifier:
- Mangle identifiers used by imports.
swc:
- Support specifing `jsc.minify`. (#704 , #1371 )
swc/node:
- Add `.minify()`.
- Add `.minifySync()`.
swc/wasm:
- Add `.minifySync()`.
2021-07-31 06:30:06 +00:00
David Sherret
6dc6d8a847
refactor(es/dep-graph): Remove SourceMap dependency ( #1908 )
2021-07-14 00:59:13 +09:00
강동윤
19bcb06f73
fix(swc): Fix source path of a source map file ( #1902 )
...
swc:
- Use `output_path` to make sourcemap path relative to the `.map` file. (#1255 )
2021-07-08 07:32:06 +00:00
강동윤
211e208219
fix(node-swc): Fix visitor ( #1890 )
...
node/binding:
- Fix visitor methods for array elements. (#1819 , #1888 )
- Fix for const assertion. (#1625 )
- Verify object properties. (#906 )
2021-07-04 12:35:25 +00:00
강동윤
ff440d47a4
chore: Organize project ( #1849 )
2021-06-24 17:01:21 +09:00
LongYinan
d6571933ff
feat(node-swc): Support windows aarch64 and linux aarch64 musl ( #1773 )
2021-06-02 09:34:27 +09:00
LongYinan
6a13615381
feat(node-swc): Support FreeBSD ( #1758 )
2021-05-28 12:47:02 +09:00