Donny/강동윤
6365acc9f5
test(es/minifier): Organize terser tests ( #6116 )
...
**Description:**
Our minifier is better than terser in some cases, so we don't need to match the output of terser exactly.
2022-10-11 08:25:11 +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
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
Donny/강동윤
e9c704182b
feat(es/minifier): Improve analysis of reassignments ( #5931 )
2022-09-22 10:22:18 +00:00
Donny/강동윤
ac7b066d9a
feat(es/minifier): Inline rest parameters of IIFE ( #5929 )
2022-09-22 06:16:29 +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
Donny/강동윤
a9873e505d
perf(es/minifier): Optimize analyzer ( #5908 )
2022-09-20 08:21:39 +00:00
Alexander Akait
ccd618ce54
perf(html/minifier): Improve performance ( #5838 )
2022-09-13 14:01:41 +09: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
Austaras
90852f5aa6
fix(es/minifier): Fix analysis of assignments and classes ( #5770 )
2022-09-07 03:51:42 +00:00
Donny/강동윤
60ce462215
feat(es/minifier): Align name mangler with terser ( #5763 )
2022-09-06 21:37:58 +09:00
Donny/강동윤
5e2b6d5551
feat(es/minifier): Remove useless ES version check ( #5703 )
2022-08-31 11:11:54 +00:00
Donny/강동윤
d44bbffa02
fix(es/minifier): Revert alias analyzer work ( #5634 )
2022-08-26 08:45:49 +00:00
Donny/강동윤
00e635b9ea
fix(es/minifier): Improve alias analyzer ( #5500 )
2022-08-26 07:56:40 +00:00
Donny/강동윤
d81fe67e4b
feat(es/minifier): Improve gzipped size ( #5631 )
2022-08-26 05:23:01 +00:00
Austaras
ca21fd0c4d
fix(es/minifier): Inline vars declared in conditional paths ( #5392 )
2022-08-05 13:25:28 +00:00
Donny/강동윤
3943eb24d1
feat(es/minifier): Consider char frequencies ( #5375 )
2022-08-03 10:20:17 +00:00
Donny/강동윤
64a99461ec
fix(es/minifier): Change default es version to es5
( #5333 )
2022-07-29 02:40:14 +00:00
Donny/강동윤
36d960c7e9
perf(es/hygiene): Make hygiene
faster ( #4952 )
2022-06-15 14:36:57 +00:00
Donny/강동윤
7f69b9c80f
test(es/minifier): Add snapshots for the mangler ( #4823 )
...
I found a way to make the name mangler parallel, but I want to ensure that we don't break anything.
2022-05-27 07:32:23 +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/강동윤
73dfa95e5a
fix(es/minifier): Fix analysis of assignment patterns ( #4712 )
2022-05-19 05:10:12 +00:00
Donny/강동윤
36ff4f735f
test(es/minifier): Add size tests using dbg-swc
( #4664 )
2022-05-16 03:01:53 +00:00
Donny/강동윤
53610fdafc
feat(es/resolver): Use different syntax context for unresolved refs ( #4436 )
...
- We don't need a list of bindings to check if an identifier is unresolved.
- Checking if an identifier is unresolved is now one CPU instruction.
- Previously it was one hashmap operation.
- This PR also improves performance, by removing the hashmaps mentioned above.
2022-04-26 07:38:50 +00:00
Donny/강동윤
9733917cc7
fix(es/minifier): Fix analysis of update expressions ( #4428 )
2022-04-25 12:07:27 +00:00
Austaras
df0d572b4f
chore(es/minifier): Update terser test references ( #4297 )
2022-04-10 06:50:52 +00:00
Donny/강동윤
be09ea6991
feat(es/minifier): Drop noop calls ( #4019 )
2022-03-15 16:23:32 +09:00
Donny/강동윤
a2643608a7
feat(es/minifier): Implement pure_getters
partially ( #3872 )
2022-03-05 20:18:52 +00:00
Donny/강동윤
73cab638a1
fix(es/minifier): Preserve unresolved references ( #3780 )
...
swc_ecma_minifier:
- `pure`: Add an optional list of bindings.
- `pure`: Drop identifier only if we have the complete list of bindings.
- `pure`: Allow using `GLOBALS`.
- `pure`: Drop some pure member expressions.
- Move identifier dropping logic from the stateful optimizer to the pure optimizer.
- `pure`: Drop more references to global declarations.
2022-02-28 16:31:13 +00:00
Donny/강동윤
73e9185bba
test(es/minifier): Add snapshot testing for the analyzer ( #3529 )
2022-02-11 18:33:08 +09:00
Donny/강동윤
4a7937d56e
fix(es/minifier): Don't create top level variables ( #2985 )
...
swc_ecma_minifier:
- Add `module` to `TerserCompressorOptions`.
- Don't create top level variables while inlining if `module` is false.
- Drop more unused parameters.
2021-12-07 18:02:43 +09:00
David Sherret
beb2c73c2c
fix(swc/hygiene): Prefer not renaming top level variables ( #2940 )
...
swc_ecma_transforms_base:
- `hygiene`: Use concept of depth to prevent renaming top level nodes.
2021-12-04 01:55:27 +09:00
Donny/강동윤
2b2f6955f2
refactor: Flatten ecmascript
( #2708 )
2021-11-10 19:00:54 +09:00