Donny/강동윤
ac3a55a435
feat(visit): Add index to AstKind
( #5138 )
...
- Make `VisitAstPath` take `AstNodePath<AstKind, AstNodeRef>`.
- Add index to `AstKind::Vec*`.
2022-07-09 10:15:12 +00:00
Donny/강동윤
0e4a03ccc6
fix(es/minifier): Don't inline a callable expression if it's used as a reference ( #5118 )
2022-07-06 03:53:11 +00:00
Donny/강동윤
1a9f93546b
chore(ci): Test concurrent
( #4955 )
2022-06-13 11:15:18 +00:00
Donny/강동윤
49b3c2715c
refactor(es/minifier): Make rust-analyzer
fast, really ( #4746 )
2022-05-23 16:16:05 +09:00
Donny/강동윤
47e6cc5190
refactor(es/minifier): Make rust-analyzer
faster ( #4744 )
...
- We now use a separate crate for testing the minifier. This makes IDE much faster.
2022-05-23 15:53:01 +09:00
Donny/강동윤
6a97c7bef8
fix(es/utils): Fix wrong apis ( #4604 )
...
# API Changes
## `swc_ecma_utils`
### Renames
- `find_ids` => `find_pat_ids`
- `prepend` => `prepend_stmt`
- `as_bool` => `cast_to_bool`
- `as_number` => `as_pure_number`
- `as_string` => `cast_to_string`
- (`as_pure_bool`, `cast_to_number` is not renamed)
- `UsageFinder` => `IdentUsageFinder`.
- `IdentFinder` => `IdentRefFinder`.
## Changes
- Re-export of `HANDLER` from `swc_common::errors` is removed. Use `swc_common::error::HANDLER` instead.
- Re-export of `Id` from `swc_ecma_ast` is removed. Use `swc_ecma_ast::Id` instead.
- `ExprCtx` is used for apis related to `Expr`.
- `preserve_effects` is now a method of `ExprCtx`. It was a top-level function.
- `extract_side_effects_to` is now a method of `ExprCtx`. It was a top-level function.
- `IdentUsageFinder` (previously `UsageFinder`) now takes `Id` instead of `Ident`.
- `IdentRefFinder` (previously `IdentFinder`) now takes `Id` instead of `Ident`.
- `ExprExt::is_ident_ref_to` is removed.
- `Expr::is_global_ref_to` is added.
- `:🆔 :id` is removed. Use `Ident::to_id()` instead.
2022-05-11 04:36:22 +00:00
Donny/강동윤
2c861bd9e5
feat(es/ast): Improve Id
APIs ( #4614 )
...
# API Changes
- `Ident` now has `to_id()`. This method is added to allow removing an import.
2022-05-11 12:02:14 +09:00
Donny/강동윤
a6d404a8c2
chore(repo): Configure prettier
( #4523 )
2022-05-04 14:25:28 +00:00
Donny/강동윤
c216a03673
chore(ci): Improve bot script ( #4430 )
...
- It will now rebase another PR if there's a merge conflict.
- It does not update the base branch if it's already up-to-date.
2022-04-25 19:21:34 +09:00
Donny/강동윤
a8ed5ba357
fix(es/minifier): Apply name mangler as much as we can ( #4365 )
2022-04-19 17:20:12 +09:00
Donny/강동윤
ba5f7436c1
chore(es/minifier): Add full benchmark for .minify()
( #4341 )
2022-04-15 22:31:15 +00:00
Donny/강동윤
83a8f489ec
refactor(bindings): Rename crates ( #4337 )
2022-04-15 22:47:44 +09:00
那里好脏不可以
37a8c90750
chore(*): Typo + fomatting ( #4304 )
2022-04-11 18:45:58 +00:00
Donny/강동윤
b37dafbd27
feat(es/minifier): Implement rules for optimizing loops ( #4157 )
2022-03-25 12:08:14 +00:00
Donny/강동윤
e6088408bf
chore: Publish crates
2022-03-24 12:05:47 +09:00
Donny/강동윤
533f756274
fix(api/rust): Exclude test files from rust packages ( #4091 )
2022-03-19 10:49:12 +00:00
Donny/강동윤
bb08354950
fix(es/react): Fix _createElement
( #4070 )
2022-03-17 22:13:23 +00:00
OJ Kwon
fefb5870c7
feat(cli): Enable plugins for swc_cli
( #4059 )
2022-03-17 15:31:20 +09:00
LongYinan
db9b988845
feat(node-swc): Add libc
field in Linux platform packages ( #4046 )
2022-03-16 18:58:24 +09:00
OJ Kwon
dab2002a2e
refactor(plugin/runner): Split modules and introduce feature flags ( #4035 )
2022-03-15 22:45:40 +00:00
Donny/강동윤
9b8b111264
chore(ci): Fix auto-rebase script
2022-03-15 16:46:15 +09:00
Donny/강동윤
be09ea6991
feat(es/minifier): Drop noop calls ( #4019 )
2022-03-15 16:23:32 +09:00
Donny/강동윤
c27b84c3f6
chore(ci): Make bump-command check lazy ( #4018 )
2022-03-15 15:17:20 +09:00
Donny/강동윤
ddfa490899
chore: Publish crates
2022-03-12 10:00:23 +09:00
Donny/강동윤
814dcc09d6
test(es/compat): Organize tests ( #3825 )
2022-03-03 05:51:09 +00:00
OJ Kwon
95ecc013fe
fix(node-swc/cli): Correctly expose swcx
entrypoint ( #3784 )
2022-03-01 08:41:45 +00:00
Donny/강동윤
6d98d146a6
chore: Skip CI for automated commits ( #3760 )
2022-02-27 14:44:35 +09:00
Donny/강동윤
8b87bb4870
fix(es/parser): Don't attach comments to ;
( #3720 )
2022-02-24 07:23:53 +00:00
Donny/강동윤
76ec275c3c
chore(ci): Reduce CI time ( #3719 )
2022-02-24 06:06:03 +00:00
OJ Kwon
9cc094ab57
feat(node-swc): Expose the new swc_cli
as a binary named swcx
( #3684 )
2022-02-23 16:47:47 +00:00
Łukasz
c5f0e87ebf
chore: Typo ( #3646 )
2022-02-20 23:17:06 +09:00
Donny/강동윤
2d9735b9a9
chore(ci): Fix the auto-bump scripts
2022-02-16 14:36:45 +09:00
Donny/강동윤
a1e45c4b86
feat(bot): Add auto-bump script ( #3573 )
2022-02-15 19:35:59 +09:00
Donny/강동윤
d3f1c4e602
chore: Fix auto-rebase script again
2022-02-15 02:12:32 +09:00
Donny/강동윤
47a81bdb95
chore(ci): Remove useless tests from the matrix ( #3561 )
2022-02-14 21:13:25 +09:00
Donny/강동윤
b1fc7a9e34
chore(ci): Add a bot for auto-rebasing ( #3560 )
2022-02-14 19:49:21 +09:00
Donny/강동윤
edc46ccf93
chore(crates): Use bot account for commiitter
2022-02-09 20:35:36 +09:00
Donny/강동윤
c10cbc4eca
chore(crates): Use bot account for publishing commits
2022-02-09 20:31:32 +09:00
Donny
2cdd4300cf
chore: Publish crates
2022-01-28 01:13:16 +09:00
LongYinan
9608605772
build(node-swc): Fix GLIBC < 2.18 compatible issues and android arm binary loading issue ( #3314 )
2022-01-20 02:21:24 +00:00
Donny/강동윤
70c2f3b3a5
security(repo): Fix crev integration ( #3210 )
2022-01-07 20:03:03 +09:00
Donny
56d1f03556
chore: Publish crates
2022-01-07 15:18:26 +09:00
Donny/강동윤
8a1016fb40
refactor(bundler): Improve test suite ( #3144 )
2021-12-29 19:19:44 +09:00
Donny/강동윤
cec325be63
security(repo): Configure cargo-crev
( #3124 )
2021-12-28 18:49:33 +09:00
LongYinan
206da128a1
feat(node): Upgrade napi
to v2 ( #2958 )
2021-12-24 02:21:24 +00:00
OJ Kwon
42046e104d
feat(node/core): Include noop swc binaries ( #3088 )
2021-12-21 20:20:20 +00:00
Donny/강동윤
d482d61b9f
chore(scripts): Use cargo profile instruments
instead of cargo instruments
( #3086 )
2021-12-21 16:09:19 +09:00
Donny/강동윤
8afb5af517
chore(repo): Make git
faster ( #3075 )
...
swc_ecma_parser:
- Flatten parser test suite ported from `tsc`.
swc:
- Flatten the reference directory for the `tsc` test suite.
2021-12-20 14:05:57 +09:00
Donny
276d74f2e9
chore(crates): Use interactive bump
2021-12-19 14:11:08 +09:00
Donny
4006d5691f
chore(api/rust): Automate updating of change logs
2021-12-13 05:43:50 +09:00
Donny
b9baa503e3
chore: Add a script to manage crates
2021-12-02 15:54:43 +09:00
Donny/강동윤
6b96a3d8ed
feat: Enable logging of timings ( #2833 )
...
swc_timer:
- Add `Timer`.
- Add `timer!()`.
node:
- Enable logging.
2021-11-22 21:01:08 +09:00
Donny
a973b0bed4
chore: Publish crates
2021-11-03 13:55:27 +09:00
Donny
3935400a55
chore: Improve version manager script
2021-11-02 14:53:13 +09:00
Donny
cd2a2777d9
chore: Publish crates
2021-10-31 18:17:31 +09: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/강동윤
7a31a3f530
feat(plugin/api): Determine plugin api ( #2199 )
2021-10-09 17:47:42 +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
강동윤
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
강동윤
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
강동윤
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
LongYinan
ca417e9d59
feat(node-swc): Support windows ia32 arch ( #1367 )
2021-01-29 15:09:44 +09:00
강동윤
6a1c3da326
fix(bundler): Fix bugs ( #1346 )
...
swc_bundler:
- Fix keywords pass.
swc_ecma_transforms_optimization:
- Remove `dbg!`.
- `constant_propagation`: Inline only injected variables.
2021-01-22 18:39:57 +09:00
LongYinan
0c45a31f31
Upgrade to napi@1 ( #1244 )
...
node-swc:
- Support apple silicon.
- Support linux aarch64.
- Support linux armv7.
- Support android aarch64.
- Support yarn pnp.
2020-12-30 14:30:09 +09:00
강동윤
4490e2551d
swc.rs ( #1085 )
...
Changes url from https://swc-project.github.io to https://swc.rs
2020-09-21 22:53:48 +09:00
강동윤
2b12594cf2
Add musl support ( #1072 )
2020-09-13 18:27:26 +09:00
LongYinan
c0cb9e4401
Upgrade to napi-rs@0.3 cli ( #1033 )
2020-09-05 17:48:22 +09:00
강동윤
8a01e2b7b6
Fix spack ( #1016 )
...
swc_ecma_transforms:
- Add tests for #898
- dce preserves `export * from 'foo';`
swc_bundler:
- Fix some concurrency bugs
- Run dce only once
- Handle `export * from 'foo'`
- Handle namespace imports with computed key
- Add some unit tests for `plan`
- Handle export default decl
- Handle simple coomon dependencies properly
2020-09-03 22:45:42 +09:00
강동윤
8e237288d7
Migrate to napi ( #1009 )
2020-08-30 15:29:42 +09:00
강동윤
decac0c052
Improve performance of spack ( #981 )
...
swc_bundler:
- Invoke `LocalMark` less time
- Use better strategy for parallel computing
2020-08-23 17:27:56 +09:00
강동윤
db4ce50373
Bugfixes ( #989 )
...
swc_ecmascript:
- Make react / const modules configurable
2020-08-23 12:29:01 +09:00
강동윤
c6a10251c9
Chores ( #986 )
2020-08-23 02:41:39 +09:00
강동윤
655fc12fcb
Make spack respect swcrc ( #964 )
2020-08-14 21:02:39 +09:00
강동윤
5baa636a4b
Chores (coverage, documentation, etc..) ( #925 )
2020-08-02 19:10:28 +09:00
강동윤
881c3a369f
Coverage with crontab ( #920 )
...
I decided to configure crontab on my desktop because coverage test requires 20+GB of ram
2020-08-01 16:57:36 +09:00
강동윤
0efba88e3f
Improve typescript parser ( #811 )
2020-06-02 19:22:41 +09:00
강동윤
598c179007
Correct coverage script
2020-05-23 20:15:41 +09:00
강동윤
3a372ad29a
Move node-swc into the repository ( #789 )
...
The commit will help
- Better testing
- Preventing regression like #785 .
- **Implementing spack** (It requires access to neon api because of the plugin system)
2020-05-22 20:36:39 +09:00
강동윤
53d09d448e
Handle await-for loop just like babel ( #676 )
2020-02-18 12:27:13 +09:00
강동윤
e709da9d55
Fix SourceMap ( #672 )
...
Previously, `SourceMap` (taken from rustc) has a bug which reuses start position when new_source_file is invoked concurrently.
2020-02-17 15:56:41 +09:00
강동윤
30e08a55a7
Fix coverage
2020-02-17 10:47:12 +09:00
강동윤
36aeac8639
Coverage ( #670 )
...
Add a script to calculate coverage
2020-02-16 21:06:25 +09:00
강동윤
348052b017
Improve optimizer ( #660 )
...
Although it's quite naive at the moment, I added two optimization passes.
- dead code elimination (Closes #607 )
- inlining
2020-02-13 11:45:14 +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