Donny/강동윤
7e80c10cba
fix(es/minifier): Don't create an invalid labeled statement ( #4581 )
2022-05-09 09:15:12 +00:00
Donny/강동윤
56c3010f6b
fix(es/resolver): Fix more try catch issues ( #4582 )
2022-05-09 17:50:30 +09:00
Donny/강동윤
e43689b7d5
fix(es/minifier): Preserve more identifiers if eval
or with
exists ( #4580 )
2022-05-09 07:17:33 +00:00
Donny/강동윤
7fc9bbccd9
feat(config): Make all configuration overridable ( #4575 )
2022-05-09 05:38:27 +00:00
Donny/강동윤
9e79f9ced6
fix(es/resolver): Fix handling of a complex try catch ( #4574 )
2022-05-08 10:12:50 +00:00
Donny/강동윤
bf5ee018b3
test(es/minifier): Fix test system ( #4571 )
2022-05-08 08:27:14 +00:00
Donny/강동윤
af368eead2
fix(es/minifier): Improve sequential inliner ( #4570 )
2022-05-08 06:12:42 +00:00
Austaras
b3b6fd448c
feat(es/minifier): Remove duplicate control flow in nested blocks ( #4569 )
2022-05-08 13:07:58 +09:00
Donny/강동윤
920d9a7678
fix(es/minifier): Fix handling of template literals ( #4563 )
2022-05-08 01:56:38 +09:00
Donny/강동윤
f9b6016d4b
fix(es/minifier): Distinguish raw
and cooked
while joining template literals ( #4559 )
2022-05-07 10:10:50 +00:00
Donny/강동윤
c5b4ef4377
feat(es/minifier): Drop vars using sequential inliner ( #4547 )
2022-05-07 08:19:56 +00:00
Austaras
5d3a01ad35
fix(es/minifier): Skip getter/setter when collapsing vars ( #4557 )
2022-05-07 16:23:13 +09:00
Donny/강동윤
b0efd00f38
test(es/minifier): Ignore difference of parens ( #4546 )
2022-05-07 06:08:23 +00:00
Kristján Oddsson
3d5d234047
fix(es/minifier): Respect keepClassNames
for class expressions ( #4536 )
...
Co-authored-by: Keith Cirkel <keithamus@users.noreply.github.com>
2022-05-06 05:17:45 +00:00
Donny/강동윤
3d3e3bb1d2
test(es/minifier): Categorize more tests ( #4538 )
2022-05-06 13:54:32 +09:00
Donny/강동윤
a6d404a8c2
chore(repo): Configure prettier
( #4523 )
2022-05-04 14:25:28 +00:00
Donny/강동윤
09ba3c0e68
feat(es/minifier): Add pristine_globals
( #4480 )
2022-04-29 08:40:16 +00:00
Donny/강동윤
918c9c8a21
feat(es/minifier): Drop pure new
calls ( #4478 )
2022-04-29 07:22:13 +00:00
Donny/강동윤
7a584d755a
feat(es/minifier): Consider cost of functions for inlining ( #4470 )
2022-04-29 05:58:59 +00:00
Donny/강동윤
273954640a
feat(es/minifier): Drop more returns ( #4471 )
2022-04-28 13:28:33 +00:00
Donny/강동윤
233c4d5b86
fix(es/minifier): Fix skipping logic of sequential inliner ( #4469 )
2022-04-28 11:41:41 +00:00
Donny/강동윤
effc85df57
fix(es/minifier): Disable some passes for hoist_props
( #4468 )
2022-04-28 08:32:03 +00:00
Donny/강동윤
0bc0bae90d
fix(es/async-generator): Fix yield*
in async generators ( #4452 )
2022-04-28 04:14:17 +00:00
Austaras
ec7dfb9209
chore(es/minifier): Don't run tests with infinite loops ( #4448 )
2022-04-27 02:21:39 +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/강동윤
8048597c9e
feat(es/optimization): Accept top level mark from simplifiers ( #4434 )
2022-04-25 15:31:59 +00:00
Donny/강동윤
8118569045
fix(es/minifier): Remove wrong logic for optimizing delete
s ( #4429 )
2022-04-25 12:32:02 +00:00
Donny/강동윤
9733917cc7
fix(es/minifier): Fix analysis of update expressions ( #4428 )
2022-04-25 12:07:27 +00:00
Donny/강동윤
8ab12fd97b
fix(es/minifier): Preserve more side effects ( #4420 )
2022-04-25 06:56:19 +00:00
Donny/강동윤
aa19b65f9c
fix(es/minifier): Don't drop arguments to an IIFE without body ( #4419 )
2022-04-24 15:27:51 +00:00
Donny/강동윤
9b34ecfd2e
test(es/minifier): Categorize tests ( #4410 )
2022-04-24 12:11:02 +00:00
Donny/강동윤
f787f8c819
test(es/minifier): Execute terser tests if possible ( #4418 )
2022-04-24 11:40:39 +00:00
Austaras
83244add33
fix(es/minifier): Remove the last break in the last BlockStmt
( #4413 )
2022-04-24 03:26:49 +00:00
Donny/강동윤
4e113037e5
test(es/minifier): Use _
instead of -
for terser tests ( #4411 )
2022-04-23 18:34:00 +00:00
Donny/강동윤
ab88637937
test(es/minifier): Split tests into improvement and stabilization ( #4409 )
2022-04-23 13:40:28 +00:00
Donny/강동윤
375cc5975a
fix(es/minifier): Disable conditionals
by default ( #4391 )
2022-04-22 10:44:53 +09:00
Austaras
8cf3ddda6c
feat(es/minifier): Improve handling of switches ( #4260 )
2022-04-21 10:00:25 +00:00
Donny/강동윤
87859e373d
fix(es/minifier): Preserve more labels ( #4380 )
2022-04-21 07:23:50 +00:00
Donny/강동윤
922299a490
fix(es/minifier): Don't drop labels if required ( #4370 )
2022-04-20 13:34:21 +00:00
Donny/강동윤
4a8b1dad1d
test(es/minifier): Organize tests ( #4375 )
2022-04-20 15:52:03 +09:00
Donny/강동윤
a8eb00cc54
perf(es/minifier): Change default value of passes
to 3
( #4373 )
2022-04-19 22:02:33 +00:00
Donny/강동윤
a8ed5ba357
fix(es/minifier): Apply name mangler as much as we can ( #4365 )
2022-04-19 17:20:12 +09:00
Donny/강동윤
128175c329
fix(es/minifier): Fix default values of toplevel
( #4366 )
2022-04-19 07:31:48 +00:00
Donny/강동윤
e60ae2a486
feat(es/minifier): Implement all template literal evaluation rules ( #4360 )
...
- We now handle nested template literals.
- We now drop expressions in template literals if it's ignored.
2022-04-18 02:43:55 +00:00
Donny/강동윤
2e095face5
feat(es/minifier): Improve evaluation of template literals ( #4359 )
2022-04-18 08:43:54 +09:00
Donny/강동윤
e13b8625f2
feat(es/minifier): Implement more evaluation rules ( #4356 )
...
- We now handle `array.join` in parallel optimizer.
- We now handle `[].join` of template literals.
- We now optimize a template literal as a string addition, in unsafe mode.
2022-04-17 22:16:21 +00:00
Donny/강동윤
b3b95acc75
feat(es/minifier): const
=> let
( #3654 )
2022-04-17 15:52:29 +00:00
Austaras
5a5e41aaaa
fix(es/minifier): Preserve vars in dead branches ( #4345 )
2022-04-17 08:15:14 +00:00
Donny/강동윤
4110fcb961
fix(es/minifier): Inline before cloning ( #4338 )
2022-04-15 11:01:29 +00:00
Donny/강동윤
f92242dcb1
feat(es/minifier): Improve sequential inliner ( #4335 )
...
- We now skip more expressions.
2022-04-15 08:25:31 +00:00
Donny/강동윤
8886a4b572
fix(es/minifier): Respect dead_code
( #4328 )
2022-04-14 06:00:43 +00:00
Donny/강동윤
2002554fa2
refactor(es/minifier): Clean up logging ( #4322 )
2022-04-13 23:23:07 +09:00
Donny/강동윤
0245e26af5
fix(es/codegen): Fix overflow of numeric literals ( #4321 )
2022-04-13 10:16:51 +00:00
Alexander Akait
81370d16cb
fix(css/parser): Parse legacy calc
s ( #4320 )
2022-04-13 07:02:31 +00:00
Donny/강동윤
74a5087989
feat(es/minifier): Enable dead_code
by default ( #4309 )
2022-04-12 03:40:10 +00:00
Donny/강동윤
7e8f613272
feat(es/minifier): Enable conditionals
by default ( #4301 )
2022-04-12 02:12:10 +00:00
那里好脏不可以
37a8c90750
chore(*): Typo + fomatting ( #4304 )
2022-04-11 18:45:58 +00:00
Austaras
df0d572b4f
chore(es/minifier): Update terser test references ( #4297 )
2022-04-10 06:50:52 +00:00
Donny/강동윤
c961371c31
fix(es/minifier): Fix handling of eval
( #4273 )
2022-04-08 08:56:28 +00:00
Donny/강동윤
434dcf4af7
refactor(es/minifier): Merge code for multi-replacer ( #4269 )
2022-04-07 08:08:42 +00:00
Donny/강동윤
1f5cac4d41
feat(es/minifier): Implement more rules for hoist_props
( #4262 )
2022-04-06 11:01:45 +00:00
Donny/강동윤
ab1f440103
feat(es/minifier): Exclude local bindings from aliases ( #4261 )
...
- We now exclude bindings created by the initializer while analyzing aliases.
2022-04-06 06:28:49 +00:00
Alexander Akait
f39d3aca4d
feat(es/ast): Add raw
to Num
( #4245 )
2022-04-05 12:46:35 +00:00
Donny/강동윤
350a19587e
fix(es/minifier): Fix infinite loops ( #4250 )
...
- We now don't mark changes due to `negate_cost` as a change.
2022-04-05 07:29:10 +00:00
Donny/강동윤
4701da576f
feat(es/minifier): Improve inliner and evaluator ( #4216 )
2022-04-05 06:25:23 +00:00
magic-akari
6a51d0471a
fix(es/minifier): Handle empty RegExp ( #4235 )
2022-04-04 03:46:07 +00:00
Donny/강동윤
fe358ad0b9
feat(es/minifier): Improve sequential inlining ( #4231 )
2022-04-03 13:13:15 +00:00
Donny/강동윤
55b98fc874
fix(es/minifier): Remap variables on IIFE evaluation ( #4230 )
...
- We now check if there's pending inlining before remapping variables.
- We now use ad-hoc type for remapping.
- We now inline before remapping to prevent interference with inlining.
2022-04-03 11:39:05 +00:00
Donny/강동윤
10718547e0
fix(es/minifier): Fix evaluation of IIFEs ( #4207 )
...
- We now remap parameters using a new syntax context. This is required because we may copy functions, and it can result in duplicated variables with respect to the span hygiene.
- We now visit the sequence expression generated by inlining. This is to improve performance in some cases.
- We now remove variables from variable statements if it's identical to a parameter declared in the function.
- IIFE evaluation is now aware of `this` being different for member expressions.
- We now have more logic for detecting simple functions.
2022-03-31 09:11:54 +00:00
Donny/강동윤
11fe5fabd8
feat(es/minifier): Evaluate more iifes ( #4200 )
2022-03-30 23:35:30 +00:00
Donny/강동윤
9a9a4f37d8
fix(es/minifier): Fix react-ace
( #4183 )
2022-03-29 10:13:30 +00:00
Donny/강동윤
6d3ea17aa6
feat(es/minifier): Optimize switches more correctly ( #4180 )
2022-03-29 04:25:15 +00:00
Donny/강동윤
a6f6799811
feat(es/minifier): Evaluate trivial expressions ( #4179 )
2022-03-29 01:46:09 +00:00
Donny/강동윤
6f25e5774b
feat(es/minifier): Implement more rules for dropping unused assignemnts ( #4171 )
2022-03-28 09:14:16 +00:00
Donny/강동윤
b37dafbd27
feat(es/minifier): Implement rules for optimizing loops ( #4157 )
2022-03-25 12:08:14 +00:00
Donny/강동윤
97dfcb9ccb
chore(es/minifier): Add logging ( #4156 )
2022-03-25 06:44:07 +00:00
Donny/강동윤
ee5c48c935
feat(es/minifier): Implement more rules for optimizing for-if-break ( #4140 )
2022-03-24 00:49:32 +00:00
Donny/강동윤
1d3763d96c
feat(es/minifier): Implement some unsafe evaluation rules ( #4133 )
2022-03-23 22:56:13 +00:00
Alexander Akait
48f3dc8cc4
feat(es/codegen): Compress \t
in string literals more ( #4131 )
2022-03-23 21:37:03 +00:00
magic-akari
bf1924d1a8
feat(es/typescript): Support optional variance annotations ( #4008 )
2022-03-23 14:36:37 +00:00
Alexander Akait
f5a5217506
fix(es/codegen): Fix codegen of template literals ( #4124 )
2022-03-23 12:39:47 +00:00
Donny/강동윤
13b2f38cdd
fix(es/typescript): Collect all bindings in strip
( #4118 )
2022-03-22 10:03:58 +00:00
Alexander Akait
634d732803
feat(es/ast): Add raw
to Str
( #4071 )
2022-03-22 07:54:08 +00:00
Donny/강동윤
4a9817f003
fix(es/minifier): Consider side effects while lifting sequences ( #4116 )
2022-03-22 06:25:19 +00:00
Donny/강동윤
c6f8742669
feat(es/minifier): Implement more evaluation rules ( #4030 )
2022-03-21 20:07:59 +09:00
Alexander Akait
bd444c0ceb
fix(es/codegen): Fix codegen of string literals ( #4037 )
2022-03-16 14:25:26 +00:00
Donny/강동윤
be09ea6991
feat(es/minifier): Drop noop calls ( #4019 )
2022-03-15 16:23:32 +09:00
Donny/강동윤
a23af2dea2
feat(es/minifier): Compress more comparisons ( #3996 )
2022-03-13 09:11:16 +00:00
Donny/강동윤
64ca5bae4d
feat(es/minifier): Implement more rules for arrows
( #3992 )
2022-03-13 03:27:15 +00:00
magic-akari
04db7e2a9b
perf(es/minifier): Refactor base54 ( #3989 )
2022-03-12 15:36:42 +00:00
Donny/강동윤
76e646804a
fix(es/parser): Parse if-else chain iteratively ( #3961 )
2022-03-11 09:10:54 +00:00
underfin
91a302a672
fix(es/minifier): Preserve fuction parameters used for template literals in evaluate
and reduce_vars
( #3949 )
2022-03-10 15:21:06 +00:00
underfin
cc564ff6c5
fix(es/minifier): Skip exported vars while collapsing vars ( #3928 )
2022-03-10 06:19:25 +00:00
Donny/강동윤
9e4dea6663
feat(es/minifier): Improve dropping of unused vars ( #3923 )
2022-03-09 15:43:01 +00:00
Austaras
bd838ac5a9
feat(es/minifier): Remove pure calls ( #3925 )
2022-03-09 11:55:31 +00:00
Austaras
7cfa930a62
feat(es/fixer): Remove extra parens around IIFE in statements ( #3918 )
2022-03-08 14:35:18 +00:00
Austaras
9dd0105c5b
feat(es/fixer): Remove extra parens around iife in expression position ( #3887 )
2022-03-07 03:51:57 +00:00
Donny/강동윤
a2643608a7
feat(es/minifier): Implement pure_getters
partially ( #3872 )
2022-03-05 20:18:52 +00:00
Donny/강동윤
260c2a885e
feat(es/minifier): Implement more rules ( #3841 )
...
swc_ecma_minifier:
- `conditionals`: Preserve a conditional expression if test is not resolved.
- `unsafe_arrows`: Optimize an anonymous function expression as an arrow expression.
- `unsafe_methods`: Optimize a method property where the only statement is return to an arrow expression.
2022-03-04 02:09:15 +00:00
Donny/강동윤
0fc819e2ef
fix(es/minifier): Support declaring multiple bindings with the same name ( #3837 )
2022-03-04 06:58:39 +09:00