Alex Lam S.L
baf4903aa7
fix corner cases of catch variable inlining ( #4169 )
2020-10-03 07:02:28 +08:00
Alex Lam S.L
090ee895e1
enhance inline ( #4163 )
2020-09-30 21:03:28 +08:00
Alex Lam S.L
1d835ac17d
fix corner case in inline ( #4160 )
...
fixes #4159
2020-09-29 07:01:38 +08:00
Alex Lam S.L
b4ff6d0f2d
fix corner cases in functions & merge_vars ( #4156 )
...
fixes #4155
2020-09-26 15:31:33 +08:00
alexlamsl
8c670cae93
enhance unused
2020-09-22 07:48:55 +08:00
Alex Lam S.L
980fcbb56b
enhance unused ( #4090 )
2020-09-03 17:41:33 +08:00
Alex Lam S.L
3bf8699f95
fix corner case in inline ( #4007 )
...
fixes #4006
2020-06-29 09:06:23 +08:00
Alex Lam S.L
b24eb22c6b
enhance reduce_vars ( #3942 )
2020-06-01 20:55:23 +08:00
Alex Lam S.L
d47ea77811
fix corner case in functions ( #3930 )
...
fixes #3929
2020-05-28 20:07:36 +08:00
Alex Lam S.L
aeb9ea5ac2
fix corner case in inline ( #3915 )
...
fixes #3911
2020-05-21 22:05:31 +08:00
Alex Lam S.L
e23bf48052
enhance evaluate & reduce_vars ( #3873 )
2020-05-11 03:08:05 +08:00
Alex Lam S.L
88985a46ed
fix corner case in inline ( #3853 )
...
fixes #3852
2020-05-07 20:53:05 +08:00
Alex Lam S.L
0794aaa2c2
fix corner case in inline ( #3837 )
...
fixes #3836
2020-05-01 17:20:23 +08:00
Alex Lam S.L
74801de315
fix corner cases in inline ( #3834 )
...
fixes #3833
fixes #3835
2020-05-01 09:06:40 +08:00
Alex Lam S.L
f80d5b8c9e
enhance inline ( #3832 )
2020-05-01 04:33:46 +08:00
Alex Lam S.L
a4a8ccea8c
fix corner case in inline ( #3822 )
...
fixes #3821
2020-04-27 03:31:19 +08:00
Alex Lam S.L
903a5df9a5
fix corner case in inline ( #3778 )
...
fixes #3777
2020-04-11 19:54:26 +08:00
Alex Lam S.L
a2b16e89a4
fix corner cases in inline ( #3773 )
...
fixes #3770
fixes #3771
fixes #3772
2020-04-11 00:34:45 +08:00
Alex Lam S.L
b35f4c5a83
enhance inline ( #3767 )
2020-04-10 10:48:24 +08:00
Alex Lam S.L
1b07f64057
enhance inline ( #3760 )
2020-04-05 10:42:23 +08:00
Alex Lam S.L
83a42716c3
fix corner case in unused ( #3716 )
2020-02-12 23:46:16 +00:00
Alex Lam S.L
a478f275e4
enhance sequences ( #3693 )
2020-01-28 09:58:01 +08:00
Alex Lam S.L
46caaa82ba
enhance collapse_vars ( #3680 )
...
closes #3679
2020-01-10 04:28:43 +08:00
Alex Lam S.L
d83d3d741a
enhance unused ( #3662 )
2019-12-31 23:39:24 +08:00
Alex Lam S.L
4dbdac9c31
enhance booleans ( #3657 )
2019-12-30 22:41:11 +08:00
Alex Lam S.L
9a6faf365b
fix corner cases in keep_fargs & unused ( #3618 )
2019-12-02 06:43:54 +08:00
Alex Lam S.L
e915832a36
enhance unused ( #3617 )
2019-12-01 18:10:37 +08:00
Alex Lam S.L
1283d73853
fix corner case in parsing directives ( #3615 )
2019-11-29 18:57:29 +08:00
Alex Lam S.L
e27493f3c2
fix corner case in inline ( #3608 )
2019-11-27 14:54:36 +08:00
Alex Lam S.L
6768e6578f
inline functions with directives more effectively ( #3604 )
2019-11-26 01:51:04 +08:00
Alex Lam S.L
4e06e1ca34
fix corner case in inline ( #3595 )
2019-11-18 15:04:55 +08:00
Alex Lam S.L
8504a4ea0e
fix corner case in reduce_funcs ( #3592 )
2019-11-17 11:19:42 +08:00
Alex Lam S.L
4bd36dc8da
enhance unused ( #3584 )
2019-11-13 21:44:44 +08:00
Alex Lam S.L
d6fd18d0b0
enhance evaluate & inline ( #3580 )
2019-11-13 04:17:09 +08:00
Alex Lam S.L
dcbf2236c7
more tests for #3562 ( #3565 )
2019-11-02 03:34:20 +08:00
Alex Lam S.L
a53ab99378
fix corner case in side_effects ( #3514 )
...
fixes #3512
2019-10-23 01:04:00 +08:00
Alex Lam S.L
0b3705e82f
fix corner cases in inline ( #3507 )
...
fixes #3506
2019-10-22 15:41:55 +08:00
Alex Lam S.L
d3d1d11926
fix corner case in ie8 & rename ( #3474 )
...
fixes #3473
2019-10-15 07:27:02 +08:00
Alex Lam S.L
35338a100f
handle function/variable name collisions correctly ( #3451 )
...
fixes #3439
2019-10-06 08:51:38 +08:00
Alex Lam S.L
a31c477fea
fix variable scope determination ( #3449 )
...
fixes #3444
2019-10-06 05:13:44 +08:00
Alex Lam S.L
9fc8cd4076
fix corner case in functions ( #3403 )
...
fixes #3402
2019-05-11 18:55:45 +08:00
Alex Lam S.L
5476cb8f05
fix corner case in inline ( #3401 )
...
fixes #3400
2019-05-10 01:22:44 +08:00
Alex Lam S.L
f01cc1e413
unwind IIFE class patterns ( #3373 )
...
fixes #2332
2019-04-21 09:49:07 +08:00
Alex Lam S.L
c719552317
fix corner cases in functions ( #3372 )
...
fixes #3371
2019-04-21 02:16:05 +08:00
Alex Lam S.L
00833e893a
enhance functions ( #3368 )
2019-04-19 19:01:47 +08:00
Alex Lam S.L
b55a2fd531
fix corner case in functions ( #3367 )
...
fixes #3366
2019-04-19 02:55:43 +08:00
Alex Lam S.L
e8a2c0b5bf
fix corner case in functions ( #3365 )
...
fixes #3364
2019-04-18 17:03:52 +08:00
Alex Lam S.L
5172ba5f2a
introduce functions ( #3360 )
...
`var f = function() {};` => `function f() {}`
2019-04-15 22:23:11 +08:00
Alex Lam S.L
54b0b49b68
enhance inline ( #3352 )
2019-03-21 02:58:33 +08:00
Alex Lam S.L
615ae37ca3
introduce assignments ( #3345 )
2019-03-18 21:28:41 +08:00
Alex Lam S.L
4430a436eb
fix corner case in inline ( #3343 )
2019-03-17 05:31:40 +08:00
Alex Lam S.L
8d2e6f333e
fix function inlining after reduce_vars ( #3340 )
...
fixes #3297
2019-03-15 05:45:46 +08:00
Alex Lam S.L
ebd82b3fb6
fix corner case in collapse_vars ( #3334 )
...
fixes #3274
2019-03-14 16:05:56 +08:00
Alex Lam S.L
fc78423f1d
clean up webkit quirks ( #3229 )
2018-08-08 16:15:45 +08:00
alexlamsl
5ffc17d4aa
fix corner case in unused
2018-07-01 14:34:42 +08:00
Alex Lam S.L
76df77c08c
implement directives ( #3203 )
...
fixes #3166
2018-06-28 18:16:49 +08:00
Alex Lam S.L
9e19e63551
general clean-ups ( #3175 )
2018-06-06 17:50:56 +08:00
Alex Lam S.L
df8a99439a
fix various corner cases ( #3126 )
...
- augment ufuzz/reminify test options
fixes #3125
2018-05-07 07:36:25 +08:00
Alex Lam S.L
6a916523d4
fix inline of catch-scoped variables ( #3077 )
...
fixes #3076
2018-04-11 15:44:43 +08:00
Alex Lam S.L
44116c6d2b
fix AST corruption during inline of simple return ( #3056 )
...
fixes #3054
2018-04-06 05:39:07 +08:00
Alex Lam S.L
d1c6bb8c7c
fix nested inline within loop ( #3019 )
...
fixes #3018
2018-03-23 02:31:59 +08:00
Alex Lam S.L
5c169615a8
fix corner case in inline ( #3017 )
...
fixes #3016
2018-03-22 23:46:26 +08:00
Alex Lam S.L
ace5811691
drop lone "use strict" in function body ( #2963 )
...
fixes #2961
2018-02-26 15:22:52 +08:00
Alex Lam S.L
52de64cf16
deduplicate parenthesis around object and function literals ( #2953 )
2018-02-25 02:14:33 +08:00
Alex Lam S.L
d626e9bf19
improve inline efficiency ( #2924 )
2018-02-17 02:37:13 +08:00
Alex Lam S.L
d8e0e34354
collapse within unary expressions ( #2910 )
2018-02-13 07:10:37 +08:00
Alex Lam S.L
2088e1c19d
fix AST corruption due to collapse_vars & inline ( #2899 )
...
fixes #2898
2018-02-09 06:54:37 +08:00
Alex Lam S.L
069df27bf1
enable unsafe for test/ufuzz.js ( #2819 )
...
- introduce `unsafe_undefined`
- safer `.toString()` compression
Miscellaneous
- rename `unsafe_Function`
2018-01-19 23:47:42 +08:00
Alex Lam S.L
cbbe6fad60
avoid double counting within single-use functions ( #2785 )
...
fixes #2783
2018-01-15 16:42:15 +08:00
Alex Lam S.L
1ee8be8d91
fix recursive function inline ( #2738 )
...
fixes #2737
2018-01-07 15:31:24 +08:00
Alex Lam S.L
484e484571
fix corner case in inline ( #2720 )
2018-01-04 23:38:37 +08:00
Alex Lam S.L
a6873a3859
forbid block-scoped AST_Defun in strict mode ( #2718 )
2018-01-04 18:45:51 +08:00
Alex Lam S.L
9b58b54e2d
extend inline ( #2714 )
...
- compress `function` with variables within loops
- restrict to `AST_Var` for better compatibility with ES6+
2018-01-04 12:58:40 +08:00
Alex Lam S.L
c598a12af9
apply collapse_vars to loop conditions ( #2712 )
2018-01-04 03:18:28 +08:00
Alex Lam S.L
7d3cddf9d6
inline functions with AST_Var ( #2688 )
2018-01-03 01:54:44 +08:00
Alex Lam S.L
6dead95eb3
enhance collapse_vars ( #2704 )
2018-01-02 18:42:15 +08:00
Alex Lam S.L
d838b4b52e
reset argument value within loop after inline ( #2699 )
2018-01-02 01:24:53 +08:00
Alex Lam S.L
673b071637
enhance join_vars & sequences ( #2697 )
...
- nudge declarations without assignments
- within `AST_BlockStatement`
- across `AST_If`
2018-01-01 00:09:26 +08:00
Alex Lam S.L
da82fa59a7
fix inline on duplicate argument names ( #2698 )
2017-12-31 20:59:58 +08:00
Alex Lam S.L
cb62bd98d3
fix function inlining within loops ( #2675 )
...
fixes #2663
2017-12-28 02:53:14 +08:00
Alex Lam S.L
4832bc5d88
replace single-use recursive functions ( #2659 )
...
fixes #2628
2017-12-26 21:25:35 +08:00
Alex Lam S.L
7f342cb3e3
suppress inline within substituted AST_Scope ( #2658 )
...
fixes #2657
2017-12-26 18:56:59 +08:00
Alex Lam S.L
cb6a92892f
fix infinite loop during inline ( #2645 )
...
fixes #2644
2017-12-25 01:57:11 +08:00
Alex Lam S.L
202f90ef8f
fix corner cases with collapse_vars, inline & reduce_vars ( #2637 )
...
fixes #2630
2017-12-24 01:24:12 +08:00
Alex Lam S.L
fac003c64f
avoid inline of function with special argument names ( #2625 )
2017-12-20 02:48:04 +08:00
Alex Lam S.L
2273655c17
fix inline after single-use reduce_vars ( #2623 )
2017-12-19 22:19:33 +08:00
Alex Lam S.L
032f096b7f
add test for #2613 ( #2618 )
2017-12-19 05:22:05 +08:00
Alex Lam S.L
4b334edf49
handle global constant collision with local variable after inline ( #2617 )
...
fixes #2616
2017-12-19 03:05:30 +08:00
Alex Lam S.L
8ddcbc39e6
compress apply() & call() of function ( #2613 )
...
- `fn.apply(a, [ ... ])` => `fn.call(a, ...)`
- `fn.call(a, ... )` => `a, fn(...)`
where `fn` can be `function` literal or symbol reference linked through `reduce_vars`
2017-12-18 16:23:39 +08:00
Alex Lam S.L
21794c9b8d
account for catch variable when inline ( #2605 )
...
fixes #2604
2017-12-16 15:21:09 +08:00
Alex Lam S.L
6c686ce593
fix nested inline ( #2602 )
...
fixes #2601
2017-12-16 02:16:35 +08:00
Alex Lam S.L
8f681b1d17
handle inline of function arguments ( #2590 )
...
fixes #2476
2017-12-15 13:28:30 +08:00
Alex Lam S.L
90313875f7
inline single-use function across loop ( #2594 )
2017-12-14 19:24:54 +08:00
Alex Lam S.L
ef618332ea
fold cascade functionality into collapse_vars ( #2586 )
2017-12-14 01:20:36 +08:00
Alex Lam S.L
d21cb84696
eliminate noop calls more aggressively ( #2559 )
2017-12-07 01:22:08 +08:00
Alex Lam S.L
5a1e99d713
improve compression of if conditions ( #2544 )
2017-12-01 06:18:31 +08:00
Alex Lam S.L
bc5047c1e7
fix inline on nested substitutions ( #2533 )
...
fixes #2531
2017-11-29 13:31:41 +08:00
Alex Lam S.L
3c74047368
implement compress option reduce_funcs ( #2466 )
...
- inline single-use function declarations as expressions when permissible
- depend on `reduce_vars`
- enabled by default
- disable for speed critical code
fixes #2464
2017-11-11 05:59:35 +08:00
Alex Lam S.L
1127a2caf3
fix multiple nested function substitutions ( #2458 )
...
fixes #2449
2017-11-09 23:30:00 +08:00
Alex Lam S.L
2c2fd89e34
inline single-use functions that are not constant expressions ( #2434 )
...
fixes #2428
2017-11-05 22:14:11 +08:00