Commit Graph

3820 Commits

Author SHA1 Message Date
SWC Bot
a3d8e4c8bc chore: Publish crates 2022-09-28 12:40:16 +00:00
Donny/강동윤
8c4873f81e
test(es/minifier): Remove mangle-only snapshots (#5979)
**Description:**

We don't have to store snapshots of all fixtures.
2022-09-28 21:35:52 +09:00
SWC Bot
883bd1f642 chore: Publish crates 2022-09-28 12:10:32 +00:00
Donny/강동윤
f7128d20f0
chore(ci): Fix benchmark action (#5978) 2022-09-28 21:06:43 +09:00
SWC Bot
d75addbdec chore: Publish crates 2022-09-28 10:37:40 +00:00
Donny/강동윤
19131e168e
perf(es): Don't share Globals (#5975)
**Description:**

We don't need to share an instance of `Globals`.
2022-09-28 10:34:30 +00:00
SWC Bot
7c2d6a9f67 chore: Publish crates 2022-09-28 09:23:36 +00:00
Donny/강동윤
e37bb55101
perf(es/minifier): Optimize MultiReplacer (#5977)
**Description:**

This PR splits the `MultiReplacer` into two variants. The first one is the cloning version, and this is parallel. The other one is the non-cloning version, which is not parallel.
2022-09-28 09:19:30 +00:00
SWC Bot
c23c07fc50 chore: Publish crates 2022-09-28 08:16:52 +00:00
Donny/강동윤
0e69890764
feat(es/minifier): Evaluate more literals in comparison (#5976)
**Description:**

I'll fix the performance issue with a follow-up PR.

**Related issue:**

 - Closes https://github.com/swc-project/swc/issues/4415.
2022-09-28 08:07:55 +00:00
SWC Bot
8a4fefd12a chore: Publish crates 2022-09-28 06:44:08 +00:00
Donny/강동윤
8066d8f60e
chore(es/transforms): Setup parallel benchmark (#5974) 2022-09-28 06:40:31 +00:00
SWC Bot
b5be765a87 chore: Publish crates 2022-09-28 05:39:30 +00:00
Austaras
aff4ea5f44
fix(es/minifier): Preserve exports in DCE (#5973) 2022-09-28 05:35:51 +00:00
SWC Bot
cc312eca50 chore: Publish crates 2022-09-28 02:58:55 +00:00
Alexander Akait
dfdad69c03
feat(css/minifier): Remove duplicate @counter-style at-rules (#5970) 2022-09-28 02:55:17 +00:00
SWC Bot
c4a7f21a71 chore: Publish crates 2022-09-28 01:58:17 +00:00
SWC Bot
f655488cfa chore: Publish crates 2022-09-27 13:57:39 +00:00
Finn Böger
1f892cd979
fix(es/compat): Fix unrolling of arrays in generator (#5965)
**Related issue:**

 - Closes https://github.com/swc-project/swc/issues/5951.
2022-09-27 13:53:51 +00:00
SWC Bot
a5918422bf chore: Publish crates 2022-09-27 11:52:21 +00:00
Donny/강동윤
e410102633
fix(es/compat): Fix the order of initialization for decorators on computed keys (#5964) 2022-09-27 11:48:42 +00:00
SWC Bot
3eecf954b3 chore: Publish crates 2022-09-27 08:41:58 +00:00
Donny/강동윤
0fb2c1d5a5
fix(es/minifier): Fix analysis of nested function-like properties (#5963)
**Related issue:**

 - Closes https://github.com/swc-project/swc/issues/5950.
2022-09-27 08:38:14 +00:00
SWC Bot
cf474a3eac chore: Publish crates 2022-09-27 07:54:26 +00:00
Donny/강동윤
dcd516d2bd
feat(es/minifier): Ignore more expressions in sequential inliner (#5961)
**Description:**

We can skip **member access** to `console` as it does not have any side effects.
2022-09-27 07:45:44 +00:00
SWC Bot
301f99023c chore: Publish crates 2022-09-27 06:22:51 +00:00
Donny/강동윤
48cddc16f6
test(es/minifier): Categorize terser tests (#5960)
**Description:**

I'm going to focus on rules enabled by default. I updated some tests because our one was better, and postponed `unsafe` tests.
2022-09-27 15:18:57 +09:00
SWC Bot
1682095813 chore: Publish crates 2022-09-27 05:54:04 +00:00
Austaras
573418fc96
fix(es/resolver): Use a separate mark for the name of FnExpr (#5959) 2022-09-27 14:50:35 +09:00
SWC Bot
3d393dd709 chore: Publish crates 2022-09-27 03:22:48 +00:00
Donny/강동윤
33a15c8d82
fix(es/minifier): Fix analysis of parameters (#5954)
**Description:**

Although the author of the issue talked about `@react-pdf/renderer`, it's a bug related to `brotli`, not react pdf renderer.

After investigation, I found that the bug is caused by not marking parameters as initialized. So I fixed the analyzer.

**Related issue:**

 - https://github.com/vercel/next.js/issues/40803.
2022-09-27 12:19:36 +09:00
SWC Bot
132a9380df chore: Publish crates 2022-09-26 15:12:03 +00:00
Donny/강동윤
9d1974248d
fix(es/minifier): Fix skipping logic of sequential inliner (#5956)
**Description:**

This PR implements `is_skippable_for_seq` fully.

**Related issue:**

 - Closes https://github.com/swc-project/swc/issues/5935.
2022-09-26 15:05:52 +00:00
Donny/강동윤
d0e2e3c43b fix(es/testing): Remove cycle 2022-09-26 18:25:05 +09:00
SWC Bot
e001226674 chore: Publish crates 2022-09-26 09:21:39 +00:00
Donny/강동윤
2ba88154fc
fix(es/codegen): Align sourcemap with terser (#5657) 2022-09-26 18:12:42 +09:00
SWC Bot
b5027f00a0 chore: Publish crates 2022-09-25 02:23:02 +00:00
Donny/강동윤
b219fa2f01
feat(dbg-swc): Add a size debugger for next.js (#5945) 2022-09-25 11:18:53 +09:00
SWC Bot
e1f421b6af chore: Publish crates 2022-09-25 01:36:48 +00:00
John Daly
cdd69d0145
fix(es/parser): Allow as in destructuring assignment (#5948) 2022-09-25 10:29:33 +09:00
SWC Bot
e5ba9636ac chore: Publish crates 2022-09-24 03:36:47 +00:00
Donny/강동윤
3c3529cb84
build(rustc): Update rustc (#5943)
**Description:**

This PR updates rustc, and fix some performance bugs of `swc_common`.
2022-09-24 03:33:47 +00:00
SWC Bot
8a5ed1e0ba chore: Publish crates 2022-09-23 07:50:26 +00:00
Donny/강동윤
5cddb4c734
feat(es/typescript): Support TS 4.9 (#5938)
**Description:**

This PR adds satisfaction expression to the AST and parser.
2022-09-23 16:41:56 +09:00
SWC Bot
ae14211f04 chore: Publish crates 2022-09-23 05:25:48 +00:00
Donny/강동윤
97647861bf
fix(es/minifier): Track aliasing via assignments (#5940) 2022-09-23 14:22:41 +09:00
SWC Bot
ae6c344fe5 chore: Publish crates 2022-09-23 04:19:14 +00:00
Donny/강동윤
93964a82ea
test(es/minifier): Remove analysis snapshot (#5939)
**Description:**

This PR removes analysis snapshots as it disturbs code review process
2022-09-23 13:14:42 +09:00
SWC Bot
15d21651c9 chore: Publish crates 2022-09-22 14:28:07 +00:00
Donny/강동윤
7bcaaef4f7
feat(es/minifier): Mangle labels (#5934)
**Description:**

This PR adds code to mangle labels.
2022-09-22 23:24:05 +09:00
SWC Bot
8dbef496cf chore: Publish crates 2022-09-22 13:58:09 +00:00
Donny/강동윤
e16827cc9d
feat(es/minifier): Drop cycles in nested functions (#5933) 2022-09-22 13:54:49 +00:00
SWC Bot
098a021a43 chore: Publish crates 2022-09-22 13:18:22 +00:00
Donny/강동윤
5314ac5d02
feat(es/minifier): Use char frequency data for property manglers (#5932) 2022-09-22 22:14:26 +09:00
SWC Bot
0879a0504a chore: Publish crates 2022-09-22 10:25:54 +00:00
Donny/강동윤
e9c704182b
feat(es/minifier): Improve analysis of reassignments (#5931) 2022-09-22 10:22:18 +00:00
SWC Bot
60bcdf768a chore: Publish crates 2022-09-22 09:22:14 +00:00
Donny/강동윤
f2224132c1
fix(es/minifier): Prepend vars when dropping vars in a for loop initializer (#5930)
**Description:**

The minifier appends initializer of for statements instead of prepending it.

**Related issue:**

- https://github.com/vercel/next.js/discussions/30237#discussioncomment-3704795
2022-09-22 09:18:41 +00:00
SWC Bot
a2b3063784 chore: Publish crates 2022-09-22 06:57:15 +00:00
Jason
64694dc7d5
fix(css/parser): Report an error for invalid layer in @import (#5928) 2022-09-22 06:53:34 +00:00
SWC Bot
5e82dd63af chore: Publish crates 2022-09-22 06:19:31 +00:00
Donny/강동윤
ac7b066d9a
feat(es/minifier): Inline rest parameters of IIFE (#5929) 2022-09-22 06:16:29 +00:00
SWC Bot
f5d42aa2b6 chore: Publish crates 2022-09-22 03:56:27 +00:00
Donny/강동윤
565bf317f6
feat(es/minifier): Evaluate more expressions (#5926) 2022-09-22 03:53:14 +00:00
SWC Bot
4c3813dbcc chore: Publish crates 2022-09-22 03:16:22 +00:00
Jason
1dc5307069
feat(css/minifier): Minify the name of @keyframes (#5894)
**Related issue:**

 - Closes https://github.com/swc-project/swc/issues/5889.

Co-authored-by: 一丝 <percyley@qq.com>
2022-09-22 03:12:50 +00:00
SWC Bot
043c95307e chore: Publish crates 2022-09-21 15:12:52 +00:00
Donny/강동윤
19ce2737b1
feat(es/minifier): Collapse let without init (#5909)
**Description:**

This patch applies the variable collapsing logic for the variables declared with `var` to the variables declared with `let`. This requires some patch about the behavior of visitors about `BlockStmt`, so this patch includes relevant changes.

**Related issue:**

 - Closes https://github.com/swc-project/swc/issues/5696.
2022-09-21 15:04:29 +00:00
SWC Bot
1cf0e2369b chore: Publish crates 2022-09-21 12:22:25 +00:00
Donny/강동윤
31711e76af
test(es/minifier): Add an execution test for a fixed issue (#5925)
**Related issue:**

 - Closes https://github.com/swc-project/swc/issues/5914.
2022-09-21 12:19:14 +00:00
SWC Bot
a9270a8475 chore: Publish crates 2022-09-21 11:36:41 +00:00
Donny/강동윤
e303f7e853
fix(es/minifier): Fix analysis of assignments (#5924)
**Related issue:**

 - Closes https://github.com/swc-project/swc/issues/5910
2022-09-21 11:33:25 +00:00
SWC Bot
60417bdf77 chore: Publish crates 2022-09-21 10:58:05 +00:00
Donny/강동윤
0b34bcb40e
test(es/minifier): Add a test for a wrong issue (#5923) 2022-09-21 19:52:52 +09:00
SWC Bot
6e560644e5 chore: Publish crates 2022-09-21 08:24:14 +00:00
Jason
10cdbed05e
fix(css/parser): Fix infinite loop about @import and layer (#5919) 2022-09-21 08:21:04 +00:00
SWC Bot
ce6b0886d1 chore: Publish crates 2022-09-21 07:40:12 +00:00
Shu Ding
72429d8801
feat(swc_core): Expose tty feature of swc_common as common_tty (#5920)
**Description:**

This PR adds a `common_tty` feature to swc_core which enables `tty-emitter` for `swc_common` to make the colored terminal output available.
2022-09-21 16:37:08 +09:00
SWC Bot
8a9cc7dd2a chore: Publish crates 2022-09-21 07:33:40 +00:00
Donny/강동윤
fe40d8312b
test(es): Accept arguments (#5916)
**Description:**

This PR adds a way to provide arguments to `exec_node_js`.
2022-09-21 16:23:10 +09:00
Donny/강동윤
6d1e5c77f1 chore: Publish crates 2022-09-21 09:59:44 +09:00
SWC Bot
be81c4737e chore: Publish crates 2022-09-20 08:32:27 +00:00
Donny/강동윤
a9873e505d
perf(es/minifier): Optimize analyzer (#5908) 2022-09-20 08:21:39 +00:00
SWC Bot
1898d6686a chore: Publish crates 2022-09-20 06:44:48 +00:00
Donny/강동윤
1df72430a5
perf(es/minifier): Invoke DCE only before the first compression (#5907)
**Description:**

Invoke DCE only before the first compression. I verified that this patch does not affect the compression rate of the real-world inputs greatly.
2022-09-20 15:41:26 +09:00
SWC Bot
cb2044234a chore: Publish crates 2022-09-20 04:32:30 +00:00
Donny/강동윤
6bbd3f4c14
perf(es/minifier): Make more passes parallel (#5906)
**Description:**

We only unwrap parenthesis in precompress optimizer, so I refactored it. Also, as it's embarrassingly parallel, I parallelized it.
2022-09-20 04:29:08 +00:00
SWC Bot
5c2b1bb15d chore: Publish crates 2022-09-20 03:51:28 +00:00
Donny/강동윤
1a182ef8d9
perf(es): Optimize memory layout of AST (#5829) 2022-09-20 12:47:21 +09:00
SWC Bot
26b9f1fc23 chore: Publish crates 2022-09-20 01:50:11 +00:00
Alexander Akait
2bf24195f2
feat(css/parser): Parse more math functions in @media (#5904) 2022-09-20 10:45:49 +09:00
SWC Bot
8c112c371b chore: Publish crates 2022-09-19 15:11:28 +00:00
Donny/강동윤
aacf7aaf80
feat(es/minifier): Drop function identifier in a single pass (#5901)
**Description:**

We only inline function declarations if `ref_count` is 1, so we don't need to preserve the name of the function.

**Related issue:**

 - Closes https://github.com/swc-project/swc/issues/5682.
2022-09-19 15:07:56 +00:00
SWC Bot
345e955265 chore: Publish crates 2022-09-19 13:37:22 +00:00
SWC Bot
a18625c0d0 chore: Publish crates 2022-09-19 12:25:00 +00:00
Austaras
83c7887600
fix(es/minifier): Remove more pure calls (#5900) 2022-09-19 12:21:15 +00:00
SWC Bot
65296b4a68 chore: Publish crates 2022-09-19 08:28:54 +00:00
Donny/강동윤
0bbcfe15ee
test(es/minifier): Add a test for a fixed issue (#5897) 2022-09-19 17:25:49 +09:00
SWC Bot
b93d740396 chore: Publish crates 2022-09-19 07:49:46 +00:00
Donny/강동윤
4e656af1ec
feat(es/minifier): Drop variable from the sequential inliner (#5896)
**Description:**

We now drop variable declarations if we are going to eliminate the only usage.

**Related issue:**

 - Closes https://github.com/swc-project/swc/issues/5693.
2022-09-19 07:40:04 +00:00
SWC Bot
7db72e8232 chore: Publish crates 2022-09-18 10:02:24 +00:00
Donny/강동윤
20d071bdc7
test(es/plugin): Add a noop plugin (#5892)
**Description:**

The plugin is used for benchmark and verification of rkyv.
2022-09-18 09:54:06 +00:00
SWC Bot
473f5c4111 chore: Publish crates 2022-09-17 00:13:31 +00:00
Alexander Akait
5645e810df
perf(html/parser): Improve performance (#5884) 2022-09-17 00:10:08 +00:00
SWC Bot
6b684ca162 chore: Publish crates 2022-09-16 23:17:15 +00:00
OJ Kwon
2d4d04d06b
feat(es/plugin): Enable plugin for bytecheck flags (#5885)
**Description:**

Fixes oversight to enabling plugin when plugin-bytecheck is enabled.
2022-09-16 23:07:11 +00:00
IWANABETHATGUY
7d6d04b421
fix(es/codegen): Drop the last comma in an array literal (#5877)
**Description:**

Drop the last comma in an array literal.

**Related issue:**

 - Closes https://github.com/swc-project/swc/issues/5692.
2022-09-16 15:48:28 +09:00
Donny/강동윤
f0ca487848 chore: Publish crates 2022-09-16 15:46:25 +09:00
SWC Bot
c953ff414c chore: Publish crates 2022-09-16 03:28:09 +00:00
Alexander Akait
57e9f9c88e
fix(html/parser): Reflect the fix for a bug in spec (#5779) 2022-09-16 03:24:49 +00:00
SWC Bot
99094def0e chore: Publish crates 2022-09-16 02:47:08 +00:00
OJ Kwon
1ba151fe95
feat(swc_core): Enable bytecheck for plugin (#5878) 2022-09-16 11:43:59 +09:00
SWC Bot
ca6325ca7d chore: Publish crates 2022-09-16 01:07:09 +00:00
Will Binns-Smith
73c48a8e6e
feat(preset-env/base): Implement more traits for BrowserData and Version (#5879)
**Description:**

This derives additional common traits for these public structs.
2022-09-16 01:04:13 +00:00
SWC Bot
52c17f3056 chore: Publish crates 2022-09-15 14:49:03 +00:00
Donny/강동윤
c3fa96b21b
fix(es/minifier): Fix unicode handling (#5875) 2022-09-15 14:45:33 +00:00
SWC Bot
5cf78b0213 chore: Publish crates 2022-09-15 13:20:59 +00:00
Donny/강동윤
0d492bfce1
test(es/modules): Add tests for jsc.paths (#5876)
**Description:**

Those issues were wrong.

**Related issue:**

 - Closes https://github.com/swc-project/swc/issues/4890
 - Closes https://github.com/swc-project/swc/issues/5214
2022-09-15 13:17:48 +00:00
SWC Bot
dd2a7c1cd1 chore: Publish crates 2022-09-15 08:53:05 +00:00
SWC Bot
69bf533571 chore: Publish crates 2022-09-15 07:03:50 +00:00
magic-akari
90d311c042
fix(es/minifier): Fix handling of .toFixed call without an argument (#5868) 2022-09-15 16:00:36 +09:00
SWC Bot
9f182c555c chore: Publish crates 2022-09-15 06:56:26 +00:00
SWC Bot
1d633e8ba7 chore: Publish crates 2022-09-15 06:08:07 +00:00
Donny/강동윤
991a34e0c2
fix(es/minifier): Remove fake_block while calculating next scope (#5869)
**Description:**

We now remove `fake_block` mark from `with_ctx`.

**Related issue:**
 - Closes https://github.com/swc-project/swc/issues/5865
2022-09-15 06:04:47 +00:00
SWC Bot
ec8bb432b9 chore: Publish crates 2022-09-15 05:23:46 +00:00
OJ Kwon
092b7281d0
refactor(es/ast): Apply rkyv-bytecheck flag (#5866) 2022-09-15 05:20:46 +00:00
SWC Bot
92eea2fece chore: Publish crates 2022-09-15 04:20:45 +00:00
Alexander Akait
7f62fa6227
perf(html): Reduce memory usage (#5867) 2022-09-15 04:17:05 +00:00
SWC Bot
73ee9d6784 chore: Publish crates 2022-09-15 03:06:15 +00:00
magic-akari
006c7fb56e
fix(es/compat): Fix handling of objects in generator (#5861) 2022-09-15 12:02:48 +09:00
SWC Bot
b972c7a815 chore: Publish crates 2022-09-14 15:09:25 +00:00
Donny/강동윤
dfb01bde71
refactor: Refactor code using clippy (#5863)
**Description:**

I temporarily updated rustc to use newer version of `cargo clippy`.
2022-09-14 15:05:59 +00:00
SWC Bot
55a4e18991 chore: Publish crates 2022-09-14 13:00:55 +00:00
Austaras
63fb0c4ad3
feat(es/minifier): Move assign with seq init into seq (#5847) 2022-09-14 12:57:18 +00:00
SWC Bot
03096ff072 chore: Publish crates 2022-09-14 10:22:06 +00:00
SWC Bot
d35792f424 chore: Publish crates 2022-09-14 07:56:20 +00:00
Donny/강동윤
4cde553811
fix(es/ast): Revert #5798 (#5798) (#5855)
This reverts commit 37f42df877.
2022-09-14 16:52:46 +09:00
SWC Bot
8432c0a1ad chore: Publish crates 2022-09-14 07:19:24 +00:00
OJ Kwon
37f42df877
refactor(es/ast): Apply rkyv-bytecheck flag (#5798)
**Description:**

This PR updates ast* related package's rkyv bytecheck flags.
2022-09-14 16:16:18 +09:00
SWC Bot
0c24841274 chore: Publish crates 2022-09-14 06:54:54 +00:00
Donny/강동윤
32f18068ad
fix(es/minifier): Preserve more side effects (#5853)
**Description:**

We now preserve more side effects.

**Related issue:**

 - Closes https://github.com/swc-project/swc/issues/5680.
2022-09-14 06:51:56 +00:00
SWC Bot
0a56a2d5ab chore: Publish crates 2022-09-14 06:10:39 +00:00
magic-akari
2b2464271a
fix(es/codegen): Remove redundant ; after export default decl (#5851) 2022-09-14 06:07:15 +00:00
SWC Bot
ad4b0d200c chore: Publish crates 2022-09-14 05:05:55 +00:00
Donny/강동윤
a5f7b6946f
fix(es/minifier): Don't replace parameters of IIFE if it's recursive (#5852)
**Description:**

While investigating, I found that problem is not the analysis of recursive functions. Instead, it was a problem with the IIFE evaluator, which replaces parameters even if it's recursive.

**Related issue:**

 - Closes https://github.com/swc-project/swc/issues/5846
2022-09-14 05:02:14 +00:00
SWC Bot
9d5439281a chore: Publish crates 2022-09-14 03:03:29 +00:00
OJ Kwon
c0da2e998a
fix(swc_core): Fix reexport of testing (#5848) 2022-09-14 11:59:36 +09:00
SWC Bot
3f4e469913 chore: Publish crates 2022-09-13 10:35:40 +00:00
Donny/강동윤
0284c1bf40
test(es/transforms): Enable tests for fixed issues (#5845) 2022-09-13 10:32:00 +00:00
SWC Bot
76d22dfeb1 chore: Publish crates 2022-09-13 07:46:53 +00:00
magic-akari
bf759819e4
fix(es/modules): Improve compatibility with cjs-module-lexer (#5835) 2022-09-13 07:43:41 +00:00
SWC Bot
cae41739d5 chore: Publish crates 2022-09-13 06:48:34 +00:00
Donny/강동윤
fe3072b12a
perf(es/minifier): Reduce type sizes (#5843) 2022-09-13 06:45:33 +00:00
SWC Bot
c624c3de03 chore: Publish crates 2022-09-13 06:06:00 +00:00
Donny/강동윤
b6cf9750ec
perf(es/minifier): Make the expression simplifier more parallel (#5841)
**Description:**

It was not parallel enough.
2022-09-13 06:02:44 +00:00
SWC Bot
d16fb9a8cf chore: Publish crates 2022-09-13 05:04:36 +00:00
Alexander Akait
ccd618ce54
perf(html/minifier): Improve performance (#5838) 2022-09-13 14:01:41 +09:00
SWC Bot
abc722c6f8 chore: Publish crates 2022-09-13 04:46:38 +00:00
Alexander Akait
211b0a93fd
feat(css/minifier): Compress @media and @supports (#5828) 2022-09-13 04:43:41 +00:00
SWC Bot
d8c1e4a62e chore: Publish crates 2022-09-13 03:56:39 +00:00
Austaras
8567a38c4a
feat(es/minifier): Extend inlining of identifiers to multi-usage (#5832) 2022-09-13 03:52:47 +00:00
SWC Bot
6cb280fdb5 chore: Publish crates 2022-09-13 03:09:24 +00:00
Alexander Akait
b691fec7b7
perf(html/minifier): Improve performance (#5840) 2022-09-13 03:06:08 +00:00
SWC Bot
b2c0fbd7ba chore: Publish crates 2022-09-13 02:19:15 +00:00
magic-akari
10637b006f
fix(es/parser): Handle more TS1185 (#5834) 2022-09-13 02:16:22 +00:00
SWC Bot
35b88e3adc chore: Publish crates 2022-09-12 22:34:21 +00:00
OJ Kwon
856d741ec7
feat(swc_core): Export testing utilities (#5839)
**Description:**

This PR exports general testing utilities from swc_core.
2022-09-12 22:31:26 +00:00
SWC Bot
2df19176fb chore: Publish crates 2022-09-12 05:16:53 +00:00
Donny/강동윤
10484edbf7
perf(es/parser): Optimize memory layout (#5833)
**Description:**

I boxed `BigIntValue` in the `Token` type to make `TokenAndSpan` smaller and made the parser use `Vec` instead of `SmallVec` for token contexts.
2022-09-12 05:14:09 +00:00
SWC Bot
9f28c246dc chore: Publish crates 2022-09-12 04:34:08 +00:00
Donny/강동윤
24004270d9
perf(atoms): Reduce size of Atom (#5831)
**Description:**

This patch reduces the memory footprint.
2022-09-12 04:31:17 +00:00
SWC Bot
485632ae03 chore: Publish crates 2022-09-12 01:14:29 +00:00
Alexander Akait
1803874f14
fix(css/minifier): Fix minification of universal selectors (#5826) 2022-09-12 01:11:36 +00:00
SWC Bot
bfb06f1248 chore: Publish crates 2022-09-12 00:28:51 +00:00
SWC Bot
c92474ee13 chore: Publish crates 2022-09-11 23:40:40 +00:00
Alexander Akait
b531410ea9
fix(css/minifier): Compress alpha (#5825) 2022-09-11 23:37:35 +00:00
SWC Bot
7811ceea3b chore: Publish crates 2022-09-11 13:59:34 +00:00
Donny/강동윤
4f119b2693
perf(css): Optimize memory layout of ast types (#5823) 2022-09-11 13:56:48 +00:00
SWC Bot
fb2c33e132 chore: Publish crates 2022-09-11 09:28:02 +00:00
Donny/강동윤
9e81c2639b
perf(css/minifier): Merge passes and reduce clone (#5822) 2022-09-11 18:24:53 +09:00
SWC Bot
35736a313d chore: Publish crates 2022-09-11 07:19:34 +00:00
Donny/강동윤
4fa5a2778b
perf(css/minifier): Merge more passes into the compressor (#5821) 2022-09-11 16:16:45 +09:00
SWC Bot
70f1be9919 chore: Publish crates 2022-09-11 06:26:58 +00:00
Donny/강동윤
f523502f4c
perf(css/minifier): Merge passes (#5820)
**Description:**

A single visitor is better for performance.
2022-09-11 15:24:02 +09:00
SWC Bot
2b1e73737f chore: Publish crates 2022-09-11 06:21:56 +00:00
Donny/강동윤
cfe575e35a
perf(es/minifier): Make expression simplifier stateless and parallel (#5819) 2022-09-11 06:18:44 +00:00
SWC Bot
5fe032c01a chore: Publish crates 2022-09-11 03:00:57 +00:00
RiESAEX
8adbe1675e
fix(es/parser): Keep comments of the RHS of a binary expression (#5812) 2022-09-11 02:58:06 +00:00
SWC Bot
7f6483a94c chore: Publish crates 2022-09-11 02:07:00 +00:00
OJ Kwon
2819be5aac
feat(swc_core): Export swc_common/sourcemap (#5818) 2022-09-11 02:04:15 +00:00
SWC Bot
4084fc1aeb chore: Publish crates 2022-09-10 17:14:48 +00:00
Donny/강동윤
704ea3d48d
perf(es/minifier): Optimize usage of IndexSet (#5814) 2022-09-10 17:11:41 +00:00
SWC Bot
b2b7b23460 chore: Publish crates 2022-09-10 16:23:17 +00:00
SWC Bot
961a9047c0 chore: Publish crates 2022-09-10 15:07:06 +00:00
IWANABETHATGUY
97729e5d2b
feat(es/parser): Improve jsx lexer (#5805) 2022-09-11 00:03:51 +09:00
SWC Bot
133da8e92b chore: Publish crates 2022-09-10 10:46:37 +00:00
SWC Bot
0fe3ee682a chore: Publish crates 2022-09-10 10:06:02 +00:00
Donny/강동윤
72a8b608d6
perf(css/parser): Skip whiltespace from lexer (#5810)
**Description:**

Lexer can handle it more efficiently.
2022-09-10 10:01:45 +00:00
SWC Bot
f739976bdd chore: Publish crates 2022-09-10 09:21:51 +00:00
Donny/강동윤
91ed13e098
perf(css/parser): Remove needless branching (#5809) 2022-09-10 18:18:47 +09:00
SWC Bot
53b134f80b chore: Publish crates 2022-09-10 08:35:20 +00:00
Donny/강동윤
96cc888ef2
perf(css/parser): Use ascii operations (#5808)
**Description:**

We don't need Unicode handling in these cases.
2022-09-10 08:32:35 +00:00
SWC Bot
417b1f2a92 chore: Publish crates 2022-09-10 07:23:37 +00:00
Donny/강동윤
7391cc99b1
perf(css/minifier): Use JsWord instead of &str (#5806) 2022-09-10 07:20:51 +00:00
SWC Bot
6cf71285a6 chore: Publish crates 2022-09-10 06:39:04 +00:00
Donny/강동윤
b96eb1ead8
perf(css/codegen): Skip useless operations if not required (#5802)
**Description:**

The column is used only for sourcemap, so we can skip `chars().count()` if we are not generating source maps.
2022-09-10 15:36:15 +09:00
SWC Bot
4c078b0ac3 chore: Publish crates 2022-09-10 06:04:28 +00:00
magic-akari
aa8672e739
fix(es/compat): Fix generator (#5796)
**Description:**

- Merge `temp_vars` into `hoisted_vars`.
- Fix the context of the function call and new call.

**Related issue (if exists):**

 - https://github.com/vercel/next.js/issues/40399
2022-09-10 15:01:43 +09:00
SWC Bot
c8bb70f97e chore: Publish crates 2022-09-10 05:48:09 +00:00
Donny/강동윤
49942ca773
perf(es/codegen): Skip useless operations if not required (#5803)
**Description:**

The column is used only for sourcemap, so we can skip `chars().count()` if we are not generating source maps.
2022-09-10 14:45:23 +09:00
SWC Bot
4859052f4f chore: Publish crates 2022-09-10 04:42:39 +00:00
Donny/강동윤
88e59ffcda
perf(css/minifier): Setup benchmark (#5800)
**Description:**

I created a simple benchmark for the css minifier. It's full benchmark, which also profiles parser and codegen
2022-09-10 13:39:55 +09:00
SWC Bot
a94d9f1fbd chore: Publish crates 2022-09-10 03:54:47 +00:00
Donny/강동윤
2bbc9bd73b
refactor(es/plugin): Fix lints (#5801) 2022-09-10 12:50:54 +09:00
SWC Bot
575940e770 chore: Publish crates 2022-09-09 08:09:53 +00:00
OJ Kwon
6f19f8902f
refactor(swc_core): enable bytechecked flag (#5792)
**Description:**

Another update to enable bytecheck rkyv feature flag.

Our dep tree is quite tangled with implicit enable (plugin -> rkyv). PR tries to detach some of it while trying to preserve existing behavior as much as it can.
2022-09-09 08:05:51 +00:00
SWC Bot
54b108dc51 chore: Publish crates 2022-09-09 05:55:06 +00:00
Donny/강동윤
21fbcb9621
refactor(es/renamer): Rename PARALLEL to MANGLE (#5790)
**Description:**

Actually, performance issue comes from collision, not parallelism. So I renamed the associated constant.
2022-09-09 05:51:45 +00:00
SWC Bot
701fa74631 chore: Publish crates 2022-09-09 05:05:59 +00:00
magic-akari
9c998d4406
fix(es): Use paren_remover pass (#5753)
**Description:**

We now apply the paren_remover pass before applying other transforms.

**Related issue:**
 - Closes #5652 
 - Closes #5752
2022-09-09 05:02:24 +00:00
SWC Bot
0fe604817a chore: Publish crates 2022-09-09 04:14:30 +00:00
Donny/강동윤
097245a196
test(es): Add more execution tests (#5788)
**Description:**

This PR adds all execution tests extracted from babel.
2022-09-09 04:11:18 +00:00
SWC Bot
b5deaa77f1 chore: Publish crates 2022-09-08 15:09:08 +00:00
Donny/강동윤
f11461d3f5
test(es): Enable tests for fixed issues (#5784) 2022-09-08 15:05:39 +00:00
SWC Bot
9b723cc6f5 chore: Publish crates 2022-09-08 08:11:24 +00:00
Austaras
ee26337a25
feat(es/minifier): Inline lazily initialized variables (#5737)
Safety:

For a function-local variable, an expression with side-effects would be a call, including an indirect one with a member expression.

 - If the call is function-local, it will be analyzed by the analyzer and inliner will not work.
 - If the call is not a function-local one, it cannot modify the local variable.
2022-09-08 08:07:43 +00:00
SWC Bot
32cd51dc29 chore: Publish crates 2022-09-08 05:26:49 +00:00
Donny/강동윤
24b60d2b64
feat(es/minifier): Change order of renaming to align with terser (#5780)
**Description:**

 - Change the order of renaming to match one of `terser`.
2022-09-08 05:23:23 +00:00
SWC Bot
d2188eac3f chore: Publish crates 2022-09-08 04:28:01 +00:00
magic-akari
7deadd8667
feat(es/lexer): Recover from git merge conflict (#5775) 2022-09-08 04:24:44 +00:00
SWC Bot
bc39c9b9f2 chore: Publish crates 2022-09-08 01:39:44 +00:00
Alexander Akait
1b200a0582
chore(html/parser): Typo (#5778) 2022-09-08 01:36:02 +00:00
SWC Bot
bad9811ea8 chore: Publish crates 2022-09-07 06:16:59 +00:00
Donny/강동윤
c10d55780e
perf(es/parser): Operate on u8 (#5774) 2022-09-07 06:13:32 +00:00
SWC Bot
4507b10219 chore: Publish crates 2022-09-07 05:32:06 +00:00
Donny/강동윤
c2d10503db
perf(es/minifier): Make passes more parallel (#5773) 2022-09-07 14:28:36 +09:00
SWC Bot
0649b054b4 chore: Publish crates 2022-09-07 04:49:51 +00:00
Donny/강동윤
32a73fbf22
fix(es/minifier): Fix calculation of character frequency (#5772) 2022-09-07 04:46:21 +00:00
SWC Bot
c9a6c2193e chore: Publish crates 2022-09-07 03:54:49 +00:00
Austaras
90852f5aa6
fix(es/minifier): Fix analysis of assignments and classes (#5770) 2022-09-07 03:51:42 +00:00
SWC Bot
cee1c48298 chore: Publish crates 2022-09-07 02:09:22 +00:00
SWC Bot
d6a5acd30b chore: Publish crates 2022-09-06 16:50:15 +00:00
SWC Bot
51b9d694be chore: Publish crates 2022-09-06 13:28:30 +00:00
Donny/강동윤
9d29abcd5b
chore(es/minifier): Fix size calculator script (#5767) 2022-09-06 22:23:57 +09:00
SWC Bot
e654741336 chore: Publish crates 2022-09-06 12:41:54 +00:00
Donny/강동윤
60ce462215
feat(es/minifier): Align name mangler with terser (#5763) 2022-09-06 21:37:58 +09:00
SWC Bot
50bb6ffea9 chore: Publish crates 2022-09-06 11:09:32 +00:00
magic-akari
52f6ca5fb8
test(es/tsc): Handle tsx (#5764) 2022-09-06 11:05:45 +00:00
SWC Bot
910526980b chore: Publish crates 2022-09-06 05:39:57 +00:00
Donny/강동윤
27e9254280
perf(es/minifier): Make MultiReplacer single-pass (#5761) 2022-09-06 14:36:53 +09:00
SWC Bot
8493c88b06 chore: Publish crates 2022-09-06 01:42:23 +00:00
Austaras
948d708144
fix(es/minifier): Don't drop parameters in an exported function (#5757) 2022-09-06 10:39:23 +09:00
SWC Bot
55b03eb970 chore: Publish crates 2022-09-05 13:40:03 +00:00
IWANABETHATGUY
9fc6eda89a
fix(es/parser): Fix detection of wrong delete targets (#5754) 2022-09-05 13:36:24 +00:00
SWC Bot
912dd8f6a1 chore: Publish crates 2022-09-05 09:28:21 +00:00
Donny/강동윤
6e2002a148
perf(es/minifier): Improve codegen of name mangler (#5751) 2022-09-05 09:25:10 +00:00
SWC Bot
b6efd4300e chore: Publish crates 2022-09-05 07:09:22 +00:00
Donny/강동윤
8789184d44
perf(es/minifier): Cache the list of bindings for DCE (#5750) 2022-09-05 07:05:44 +00:00
SWC Bot
e8dd50c12e chore: Publish crates 2022-09-05 04:39:12 +00:00
Donny/강동윤
08b2aea2b0
perf(es/minifier): Use efficient logic for entry tracking in DCE (#5749) 2022-09-05 04:35:40 +00:00
OJ Kwon
1202762f30
chore(swc_core): Update deps (#5748) 2022-09-05 03:46:07 +00:00
OJ Kwon
83dbe6cdc3
fix(swc_core): Update deps (#5746) 2022-09-05 02:31:49 +00:00
SWC Bot
e7c565dbb2 chore: Publish crates 2022-09-04 16:24:37 +00:00
Donny/강동윤
96b2e17a8f
perf(es/minifier): Pre-allocate in analyzer (#5743) 2022-09-04 16:21:26 +00:00
SWC Bot
17aeba68f4 chore: Publish crates 2022-09-04 15:38:04 +00:00
Donny/강동윤
2baa640e98
perf(es/minifier): Make passes more parallel (#5741) 2022-09-04 15:34:46 +00:00
SWC Bot
c44fd43b15 chore: Publish crates 2022-09-04 14:57:35 +00:00
Donny/강동윤
64f42bec27
refactor(es/utils): Move utilities for parallel processing (#5742) 2022-09-04 23:54:36 +09:00
SWC Bot
d0f5cd38c6 chore: Publish crates 2022-09-04 14:37:47 +00:00
SWC Bot
c00f1a4d52 chore: Publish crates 2022-09-04 13:21:00 +00:00
Donny/강동윤
4e989807d7
chore(es/minifier): Fix example (#5739) 2022-09-04 22:18:05 +09:00
Donny/강동윤
74b3d2170c chore: Publish crates 2022-09-04 17:27:19 +09:00
SWC Bot
b814189f57 chore: Publish crates 2022-09-04 07:36:20 +00:00
Donny/강동윤
6ba6da62d7
perf(es/minifier): Make dead branch remover parallel (#5734) 2022-09-04 07:33:26 +00:00
SWC Bot
8c7f968b53 chore: Publish crates 2022-09-04 05:40:36 +00:00
Donny/강동윤
5936bd2b5e
perf(es/minifier): Make rename operator parallel (#5732) 2022-09-04 05:36:48 +00:00
SWC Bot
30bbe6ac4d chore: Publish crates 2022-09-04 04:52:28 +00:00
Donny/강동윤
8963db0a1d
perf(es/minifier): Skip useless analysis if not required (#5733) 2022-09-04 13:49:30 +09:00
OJ Kwon
aad50dcc6e
refactor(swc_core): Directly export swc_ecma_transforms_base (#5731) 2022-09-04 03:19:42 +00:00
SWC Bot
e97756c4b1 chore: Publish crates 2022-09-03 16:04:42 +00:00
OJ Kwon
9c43713109
fix(swc_core): Bump swc_ecma_quote_macros (#5723) 2022-09-03 16:01:45 +00:00
SWC Bot
1013d18fa8 chore: Publish crates 2022-09-03 15:11:30 +00:00
magic-akari
a3a7277909
fix(es/lexer): Drop ClassExpr context in object properties (#5729) 2022-09-03 15:08:13 +00:00
SWC Bot
fafafecb3d chore: Publish crates 2022-09-03 07:37:21 +00:00
Austaras
5b2d024788
feat(es/minifier): Relax requirement for IIFE invokation (#5721) 2022-09-03 07:33:31 +00:00
SWC Bot
a3a66c1191 chore: Publish crates 2022-09-03 06:47:08 +00:00
Donny/강동윤
31c516a922
perf(es/minifier): Optimize precompress optimizer (#5727) 2022-09-03 15:43:50 +09:00
SWC Bot
5f09a1c14a chore: Publish crates 2022-09-03 05:36:44 +00:00
Donny/강동윤
25c96b4b7a
perf(es/minifier): Use faster hash algorithm for DCE (#5725) 2022-09-03 14:33:09 +09:00
SWC Bot
0b462e2a5d chore: Publish crates 2022-09-03 05:32:12 +00:00
OJ Kwon
d6e67b5944
feat(atoms): Introduce bytecheck-ed rkyv version (#5686) 2022-09-03 14:29:02 +09:00
SWC Bot
bb5fcdbb4d chore: Publish crates 2022-09-03 04:44:48 +00:00
Donny/강동윤
5e151c8a8e
feat(es/minifier): Support cycles in DCE (#5715) 2022-09-03 04:41:54 +00:00
SWC Bot
7a6a43576a chore: Publish crates 2022-09-02 08:31:14 +00:00
OJ Kwon
9bef83681f
fix(swc_core): Fix reexport of ES transforms (#5716) 2022-09-02 08:28:00 +00:00
SWC Bot
baa5540fa2 chore: Publish crates 2022-09-02 07:44:07 +00:00
IWANABETHATGUY
383aa8510c
fix(es/parser): Improve error message (#5719) 2022-09-02 07:40:52 +00:00
SWC Bot
f2fd8dc44e chore: Publish crates 2022-09-02 01:28:36 +00:00
OJ Kwon
975cbfe0d9
refactor(swc_core): Use namespace ecma (#5713) 2022-09-02 10:24:27 +09:00
SWC Bot
d242605aa1 chore: Publish crates 2022-09-01 16:34:13 +00:00