Commit Graph

107 Commits

Author SHA1 Message Date
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
Donny/강동윤
364532e9a7
feat(es/minifier): Improve sequential inlining (#3820) 2022-03-03 19:18:43 +00:00
Donny/강동윤
043fba274e
fix(es/hygiene): Fix renaming bugs (#3824) 2022-03-03 06:21:13 +00:00
Donny/강동윤
8a468f7544
fix(es/minifier): Don't reorder unnecessarily (#3817) 2022-03-02 08:57:50 +00:00
Donny/강동윤
89388e6ac3
fix(es/minifier): Preserve more variables (#3805) 2022-03-02 07:13:57 +00:00
Donny/강동윤
789eb7baa9
feat(es/minifier): Drop more function parameters in strict mode (#3814) 2022-03-02 06:41:11 +00:00
Austaras
e1b13eb21a
feat(es/codegen): Optimize output of new expressions without arguments (#3800) 2022-03-01 10:55:49 +00:00
Donny/강동윤
8beaa202e2
fix(es/minifier): Fix optimizations of terminating expressions (#3794) 2022-03-01 09:55:45 +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/강동윤
86072b57f9
test(es/minifier): Prepare porting more rules from terser (#3779) 2022-02-28 13:49:10 +00:00
Donny/강동윤
714e05e553
feat(es/minifier): Consider arguments while dropping unused assignments (#3775)
swc_ecma_minifier:
 - `analyze`: Track usage of `arguments`.
2022-02-28 21:57:09 +09:00
Donny/강동윤
cfc036381a
fix(es/minifier): Fix inlining logic (#3776)
swc_ecma_minifier:
 - Make `inline_vars_in_node` use `MultiReplacer`.
2022-02-28 12:07:12 +00:00
Donny/강동윤
e7f7f69db4
fix(es/minifier): Disable some operations for asm.js codes (#3572) 2022-02-28 07:40:04 +00:00