Alex Lam S.L
83fb8b4ca1
fix corner case in ie8 ( #3543 )
...
fixes #3542
2019-10-28 23:54:27 +08:00
Alex Lam S.L
f38e31bd1e
fix corner case in evaluate ( #3540 )
...
fixes #3539
2019-10-28 19:56:42 +08:00
Alex Lam S.L
2f3b460212
fix & enhance unsafe_math ( #3537 )
...
closes #3535
fixes #3536
2019-10-28 13:37:08 +08:00
Alex Lam S.L
a270ba6b59
fix corner cases in unsafe_math ( #3532 )
...
fixes #3531
2019-10-27 08:25:11 +08:00
Alex Lam S.L
50a578c1f6
compress arithmetic expressions further ( #3529 )
2019-10-27 03:07:07 +08:00
Alex Lam S.L
85237b08d4
fix corner case in collapse_vars ( #3527 )
...
fixes #3526
2019-10-26 05:41:02 +08:00
Alex Lam S.L
82b3eed5ef
fix corner case in ie8 & mangle ( #3524 )
...
fixes #3523
2019-10-24 23:43:19 +08:00
Alex Lam S.L
0f7aa41e33
fix corner case in collapse_vars ( #3521 )
...
fixes #3520
2019-10-24 01:13:57 +08:00
Alex Lam S.L
4240fba9b8
fix corner cases in unused ( #3519 )
2019-10-23 06:46:05 +08:00
Alex Lam S.L
267bc70d33
fix corner case in unused ( #3517 )
...
fixes #3515
2019-10-23 01:58:40 +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
02308a7b56
fix corner case in reduce_vars ( #3510 )
...
fixes #3509
2019-10-22 20:36:05 +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
9199ab5846
minor tweaks ( #3502 )
2019-10-20 15:19:19 +08:00
Alex Lam S.L
ca6dce43fe
fix corner case in collapse_vars ( #3501 )
2019-10-20 03:53:20 +08:00
Alex Lam S.L
0201cb4b52
fix corner case in unused ( #3499 )
...
fixes #3497
2019-10-18 20:08:05 +08:00
Alex Lam S.L
cd072317d0
fix corner case in unused ( #3496 )
...
fixes #3495
2019-10-18 17:09:43 +08:00
Alex Lam S.L
0785a15ace
fix corner case in dead_code & ie8 ( #3494 )
...
fixes #3493
2019-10-17 09:58:05 +08:00
Alex Lam S.L
b1279a46d9
fix corner case in sequences ( #3491 )
...
fixes #3490
2019-10-17 09:57:50 +08:00
Alex Lam S.L
1549db70e6
fix corner case in ie8 ( #3487 )
...
fixes #3486
2019-10-16 12:18:27 +08:00
Alex Lam S.L
8ff9a3c8fb
fix corner cases in ie8 ( #3485 )
...
fixes #3484
2019-10-16 06:37:40 +08:00
Alex Lam S.L
91cae51d8f
fix corner case in evaluate & ie8 ( #3483 )
...
fixes #3482
2019-10-16 01:09:16 +08:00
Alex Lam S.L
8af2f5fbcf
fix corner case in rename ( #3481 )
...
fixes #3480
2019-10-15 19:44:07 +08:00
Alex Lam S.L
86a8016323
fix corner case in ie8 & mangle ( #3479 )
...
fixes #3478
2019-10-15 17:14:48 +08:00
Alex Lam S.L
f86f615d83
fix corner case in ie8 & mangle ( #3476 )
...
fixes #3475
2019-10-15 14:18:12 +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
736019b767
fix corner cases in ie8 ( #3472 )
...
fixes #3471
2019-10-14 18:15:40 +08:00
Alex Lam S.L
a39bdb5840
fix corner case with collapse_vars & ie8 ( #3469 )
...
fixes #3468
2019-10-14 13:34:35 +08:00
Alex Lam S.L
eba3a37bb5
fix boolean context detection ( #3466 )
...
fixes #3465
2019-10-12 03:42:57 +08:00
Alex Lam S.L
33c94d3bd9
detect boolean context across IIFEs ( #3461 )
2019-10-10 09:37:02 +08:00
Alex Lam S.L
0a63f2f2b0
workaround V8 RegExp bug ( #3453 )
...
fixes #3434
2019-10-06 11:49:39 +08:00
Alex Lam S.L
931ac66638
fix corner case in hoist_props ( #3452 )
...
fixes #3440
2019-10-06 10:29:13 +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
9d3b1efd86
fix corner case in assignments ( #3430 )
...
fixes #3429
2019-05-30 05:01:53 +08:00
Alex Lam S.L
482e1baea3
enhance assignments & unused ( #3428 )
...
closes #3427
2019-05-29 01:21:08 +08:00
Alex Lam S.L
b9053c7a25
fix corner case in keep_fargs ( #3424 )
...
fixes #3423
2019-05-21 12:55:34 +08:00
Alex Lam S.L
ae77ebe5a5
fix corner case in arguments ( #3421 )
...
fixes #3420
2019-05-19 12:59:40 +08:00
Alex Lam S.L
a246195412
enhance unsafe comparisons ( #3419 )
2019-05-17 01:28:18 +08:00
Alex Lam S.L
8939a36bc7
reduce false positives from fuzzing ( #3417 )
2019-05-16 16:15:03 +08:00
Alex Lam S.L
a21c348d93
improve sandbox fidelity ( #3415 )
2019-05-15 23:26:57 +08:00
Alex Lam S.L
1f0def10eb
fix corner case in comparisons ( #3414 )
...
fixes #3413
2019-05-15 01:01:18 +08:00
Alex Lam S.L
f87caac9d8
fix corner case in hoist_props ( #3412 )
...
fixes #3411
2019-05-14 19:12:00 +08:00
Alex Lam S.L
d538a73250
enhance side_effects ( #3410 )
2019-05-14 05:26:40 +08:00
Alex Lam S.L
2e4fbdeb08
enhance keep_fargs ( #3409 )
2019-05-13 21:58:04 +08:00
Alex Lam S.L
54cb678055
fix corner case in assignments ( #3407 )
...
fixes #3406
2019-05-12 03:52:46 +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
2ea96549c5
unify logging functionality ( #3392 )
...
fixes #3253
fixes #3254
2019-04-30 06:32:24 +08:00
Alex Lam S.L
c37a8e927e
fix corner case in properties ( #3390 )
...
fixes #3389
2019-04-29 17:23:00 +08:00
Alex Lam S.L
413bbe0480
fix corner case in evaluate ( #3388 )
...
fixes #3387
2019-04-29 08:55:46 +08:00
Alex Lam S.L
e5436ca566
enhance side_effects ( #3384 )
2019-04-25 15:15:50 +08:00
Alex Lam S.L
a206964c0a
enhance side_effects ( #3383 )
2019-04-25 04:14:21 +08:00
Alex Lam S.L
c56d89f804
enhance unsafe ( #3382 )
2019-04-25 02:42:54 +08:00
Alex Lam S.L
c215706350
enhance unsafe comparisons ( #3381 )
2019-04-25 00:08:08 +08:00
Alex Lam S.L
d3b93ec682
fix corner case in unsafe ( #3380 )
2019-04-24 22:21:28 +08:00
Alex Lam S.L
6fe20dbe33
enhance comparisons ( #3379 )
2019-04-24 21:38:55 +08:00
Alex Lam S.L
dafed54764
fix corner case in reduce_vars ( #3378 )
...
fixes #3377
2019-04-24 14:01:01 +08:00
Alex Lam S.L
a84beafd1b
fix corner case in assignments ( #3376 )
...
fixes #3375
2019-04-24 02:50:15 +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
855964a87a
enhance unsafe evaluate ( #3370 )
2019-04-20 19:42:41 +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
a74e600fa0
mangle shadowed lambda under ie8 correctly ( #3356 )
...
fixes #3355
2019-04-01 15:22:00 +08:00
Ruben Bridgewater
4b21526310
Fix test expectation ( #3357 )
...
The test expects a specific precision value that is not met on all V8 versions anymore due to a recent consolidation of different algorithms across the V8 code base.
This makes sure the preceision is tested against one digit less to keep the test working on all V8 versions.
Refs: 98453126c1
Refs: https://github.com/nodejs/node/issues/25060#issuecomment-477953457
2019-03-30 02:08:27 +08:00
Alex Lam S.L
54b0b49b68
enhance inline ( #3352 )
2019-03-21 02:58:33 +08:00
Alex Lam S.L
65648d84a5
enhance collapse_vars ( #3351 )
2019-03-20 23:31:21 +08:00
Alex Lam S.L
143f9054da
fix corner case in sequences ( #3350 )
2019-03-20 14:54:26 +08:00
Alex Lam S.L
f2286c33f1
enhance unsafe for Array ( #3349 )
2019-03-20 06:37:51 +08:00
Alex Lam S.L
c520e99eda
enhance comparisons ( #3347 )
2019-03-19 01:34:25 +08:00
Alex Lam S.L
615ae37ca3
introduce assignments ( #3345 )
2019-03-18 21:28:41 +08:00
Alex Lam S.L
7aa7f21872
fix corner case in evaluate ( #3344 )
2019-03-18 21:24:42 +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
8b3259e0c2
fix corner case in reduce_vars ( #3341 )
2019-03-15 16:06:47 +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
b3ef5e514d
enhance evaluate ( #3339 )
...
fixes #3299
2019-03-15 02:48:23 +08:00
Alex Lam S.L
e49297e5eb
improve usability of pure_funcs ( #3336 )
...
fixes #3325
2019-03-14 21:36:45 +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
d074aa6e27
fix corner case in collapse_vars ( #3333 )
...
fixes #3247
fixes #3305
fixes #3314
fixes #3327
2019-03-13 23:48:52 +08:00
Alex Lam S.L
b052f62710
fix corner case in reduce_vars ( #3332 )
...
fixes #3267
2019-03-13 21:56:38 +08:00
Alex Lam S.L
d4ac84b255
fix corner case in arguments & reduce_vars ( #3331 )
...
fixes #3282
2019-03-13 08:46:03 +08:00
Alex Lam S.L
e250396d7e
fix corner case in arguments ( #3330 )
...
Track modifications to `arguments[i]` under Strict Mode.
fixes #3273
2019-03-13 06:59:53 +08:00
silverwind
9aae4f2424
make tests compatible with Node.js 12 ( #3304 )
...
In Node.js 12, the formatting of console arguments will change slightly.
Previously, a string other than the first argument was formatted using
single quotes if the first argument was non-string. Now, quotes are
never added regardless of position of a string argument.
To make test compatible in all Node.js versions, I work around by
ensuring the first argument to console.log is a string which prevents
the quotes from being added on older versions of Node.js.
Ref: https://github.com/nodejs/node/pull/23162
2019-03-13 04:55:04 +08:00
Alex Lam S.L
008c236137
fix corner case in conditionals ( #3329 )
...
fixes #3245
fixes #3257
fixes #3260
fixes #3269
fixes #3271
fixes #3278
fixes #3309
fixes #3319
fixes #3321
2019-03-13 04:28:21 +08:00
Ed S
b1c0664066
Fix typo in warning ( #3324 )
...
protoype -> prototype
2019-03-13 02:15:54 +08:00
Alex Lam S.L
ce7e220de4
fix corner case in conditionals ( #3244 )
2018-08-30 15:59:05 +08:00
Alex Lam S.L
2bdaca10ae
enhance conditionals ( #3243 )
2018-08-30 01:06:34 +08:00
Alex Lam S.L
aa0029204e
fix corner case in reduce_vars ( #3241 )
...
fixes #3240
2018-08-29 22:14:25 +08:00
Alex Lam S.L
f352bcec3a
fix corner case in collapse_vars ( #3239 )
...
fixes #3238
2018-08-29 11:34:34 +08:00
Alex Lam S.L
694ca5d045
fix corner case in unused ( #3234 )
...
fixes #3233
2018-08-23 06:03:39 +08:00
Alex Lam S.L
57fb58b263
enhance if_return ( #3232 )
2018-08-21 18:34:16 +08:00
Alex Lam S.L
cfebeb2f63
fix corner case in mangle workaround for Safari ( #3230 )
...
fixes #3227
2018-08-09 17:34:28 +08:00
Alex Lam S.L
fc78423f1d
clean up webkit quirks ( #3229 )
2018-08-08 16:15:45 +08:00
Alex Lam S.L
d47547dc71
fix corner case in join_vars ( #3224 )
2018-07-27 19:34:44 +08:00
Alex Lam S.L
304db15a20
fix corner case in ie8 & rename ( #3223 )
2018-07-26 16:35:43 +08:00
Alex Lam S.L
7cf72b8d66
fix corner case in global_defs ( #3218 )
...
fixes #3217
2018-07-19 18:14:36 +08:00
Alex Lam S.L
cea685f8d9
fix corner case in ie8 ( #3216 )
...
fixes #3215
2018-07-19 14:45:36 +08:00
Alex Lam S.L
bcebacbb9e
fix corner cases in preserve_line ( #3212 )
2018-07-13 01:51:10 +08:00
Alex Lam S.L
66c126ffde
fix corner case in ie8 ( #3207 )
...
fixes #3206
2018-07-03 16:44:23 +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
957d5537a8
improve unsafe comparisons ( #3200 )
2018-06-28 03:46:19 +08:00
Alex Lam S.L
ab36b9b10a
fix corner case in ie8 ( #3198 )
...
fixes #3197
2018-06-24 04:00:36 +08:00
Alex Lam S.L
766a4147d4
enhance arguments ( #3193 )
...
fixes #3192
2018-06-24 04:00:21 +08:00
Alex Lam S.L
e54ddcbb8a
fix corner cases in properties ( #3189 )
...
fixes #3188
2018-06-19 18:20:11 +08:00
Alex Lam S.L
9e19e63551
general clean-ups ( #3175 )
2018-06-06 17:50:56 +08:00
Alex Lam S.L
efa21ae3e6
fix corner case in reduce_vars ( #3151 )
2018-05-26 05:45:44 +08:00
Alex Lam S.L
24d9633a35
fix corner cases with eval() ( #3147 )
...
fixes #3146
2018-05-24 14:29:30 +08:00
Alex Lam S.L
8c62d854ce
augment tests for RegExp ( #3144 )
2018-05-23 17:24:13 +08:00
Alex Lam S.L
b5af8a1914
fix corner case in reduce_vars ( #3141 )
...
fixes #3140
2018-05-21 15:53:51 +08:00
Alex Lam S.L
4fc39d8dad
fix corner case in collapse_vars ( #3139 )
2018-05-19 05:45:14 +08:00
Alex Lam S.L
7bc7704edf
fix corner case in reduce_vars ( #3129 )
2018-05-10 18:45:20 +08:00
Alex Lam S.L
14e712ee80
fix corner case in call binding ( #3128 )
...
fixes #3127
2018-05-10 06:16:35 +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
6b91d12ec3
fix corner case in reduce_vars ( #3124 )
2018-05-06 16:42:35 +08:00
Alex Lam S.L
f37b91879f
fix various corner cases ( #3123 )
2018-05-05 13:17:50 +08:00
Alex Lam S.L
c4cebb4b01
fix reduce_vars on nested invocations ( #3118 )
2018-05-04 06:05:38 +08:00
Alex Lam S.L
d51a00a450
compress AST_Sequence within AST_Call ( #3117 )
2018-05-03 19:14:56 +08:00
Alex Lam S.L
fc0f168a0c
better fix for #3113 ( #3115 )
2018-05-03 15:51:51 +08:00
Alex Lam S.L
a0ca595c2c
fix TreeWalker scan order ( #3114 )
...
fixes #3113
2018-05-03 00:27:45 +08:00
Alex Lam S.L
1a314e9f60
improve reduce_vars ( #3112 )
...
fixes #3110
2018-05-02 15:11:45 +08:00
Alex Lam S.L
22cea023d1
improve numeral compression ( #3108 )
2018-04-28 02:47:49 +08:00
Alex Lam S.L
70d4477e05
workaround vm context issue in node-chakracore ( #3106 )
2018-04-27 07:40:34 +08:00
Alex Lam S.L
9e87edfc2e
better fix for #2506 ( #3099 )
2018-04-25 04:46:07 +08:00
Alex Lam S.L
27211cf2d5
handle RHS side-effects in collapse_vars ( #3097 )
...
fixes #3096
2018-04-24 20:31:50 +08:00
Alex Lam S.L
b5ce199711
improve max_line_len ( #3095 )
...
fixes #304
2018-04-24 15:19:45 +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
ba7069d52b
suppress hoist_props for embedded assignments ( #3074 )
2018-04-11 05:19:16 +08:00
Alex Lam S.L
4dd7d0e39b
extend hoist_props ( #3073 )
...
- handle `AST_Assign` the same way as `AST_VarDef`
- inject `AST_Var` as succeeding statement
fixes #3071
2018-04-11 02:48:15 +08:00
Alex Lam S.L
90199d0a96
extend join_vars on object assignments ( #3072 )
2018-04-11 01:35:42 +08:00
Alex Lam S.L
b82fd0ad41
handle flow control in loops with reduce_vars ( #3069 )
...
fixes #3068
2018-04-10 06:51:03 +08:00
Alex Lam S.L
183da16896
handle pure_funcs under inline & reduce_vars correctly ( #3066 )
...
fixes #3065
2018-04-10 02:46:38 +08:00
Alex Lam S.L
db49daf365
mangle Object.defineProperty() ( #3059 )
...
fixes #869
2018-04-06 17:10:36 +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
e67553fa55
fix tree traversal on AST_Do ( #3047 )
...
fixes #3046
2018-04-02 22:31:23 +08:00
Alex Lam S.L
07f64d4050
fix escape analysis on AST_New ( #3043 )
...
fixes #3042
2018-03-31 15:03:46 +09:00
Alex Lam S.L
fa3250199a
mangle unused nested AST_SymbolCatch correctly ( #3038 )
...
fixes #3035
2018-03-30 16:23:09 +09:00
Alex Lam S.L
06b9894c19
handle modifications to this correctly ( #3036 )
...
fixes #3032
2018-03-30 15:07:36 +09:00
Alex Lam S.L
12985d86c2
fix corner case in hoist_props ( #3022 )
...
fixes #3021
2018-03-23 07:27:35 +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
ccf0e2ef4f
extend fuzzy RHS folding ( #3006 )
...
- `a = []; if (1) x();` => `if (a = []) x();`
2018-03-17 03:10:21 +08:00
Alex Lam S.L
20ca0f5906
improve truthy compression ( #3009 )
2018-03-16 06:12:59 +08:00
Alex Lam S.L
b29d435bb5
refactor brackets to braces ( #3005 )
2018-03-15 15:46:45 +08:00
Alex Lam S.L
5429234138
preserve non-constant value assignments with modifications ( #2997 )
...
fixes #2995
2018-03-13 17:35:34 +08:00
Alex Lam S.L
b9f72a4a81
handle case correctly under reduce_vars ( #2993 )
...
fixes #2992
2018-03-11 15:54:43 +08:00
Alex Lam S.L
fc6ebd04a5
preserve case when inline_script ( #2991 )
...
fixes #2989
2018-03-11 05:11:12 +08:00
Alex Lam S.L
10b3752b1e
fix mangle of AST_SymbolLambda under ie8 ( #2978 )
...
fixes #2976
2018-03-07 17:20:38 +08:00
Alex Lam S.L
fe51a91395
handle negated constants correctly in collapse_vars ( #2975 )
...
fixes #2974
2018-03-06 00:45:58 +08:00
Alex Lam S.L
a75a046abb
compress arguments[index] ( #2967 )
...
- always replace with existing parameter
- only introduce new parameter if `keep_fargs` is disabled
2018-03-02 11:22:09 +08:00
Alex Lam S.L
38f2b4579f
fix value reference caching in evaluate ( #2969 )
...
fixes #2968
2018-03-02 04:04:29 +08:00
Alex Lam S.L
56e2a369d0
enhance conditionals ( #2966 )
...
- `x ? (y, w) : (z, w)` => `x ? y : z, w`
2018-02-28 23:34:48 +08:00
Alex Lam S.L
0daa199fa8
migrate safe transformations out of unsafe_comps ( #2962 )
...
fixes #2959
2018-02-28 22:02:24 +08:00
Alex Lam S.L
73e98dcda4
drop side_effects-free return values ( #2965 )
2018-02-28 19:59:19 +08:00
Alex Lam S.L
36bca6934d
enhance collapse_vars ( #2952 )
...
- `a = b, b` => `a = b`
- `a.b = c, c()` => `(a.b = c)()`
2018-02-28 15:19:32 +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
b8b2ac5230
improve fix for #2954 ( #2958 )
2018-02-26 03:14:22 +08:00
Alex Lam S.L
ea2359381b
fix collapse_vars on nested exception ( #2955 )
...
fixes #2954
2018-02-25 15:39:00 +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
f40f5eb228
improve mangle ( #2948 )
2018-02-23 23:51:49 +08:00
Alex Lam S.L
29a71d3aae
more tests for #2938 ( #2940 )
2018-02-21 04:19:42 +08:00
Alex Lam S.L
39a907bde3
workaround pure_getters=true when dropping unused assignments ( #2939 )
...
fixes #2938
2018-02-20 17:38:40 +08:00
Alex Lam S.L
4b5993ff15
fix crash in may_throw() ( #2932 )
...
fixes #2931
2018-02-18 21:51:27 +08:00
Alex Lam S.L
2351a672ea
fix dead_code on exceptional return ( #2930 )
...
fixes #2929
2018-02-18 04:36:00 +08:00
Alex Lam S.L
82d1ef0242
fix unsafe evaluate of function property ( #2927 )
...
fixes #2926
2018-02-17 21:33:36 +08:00
Alex Lam S.L
7fdd2082a6
drop unused "class" definition IIFEs ( #2923 )
...
fixes #805
2018-02-17 05:11:31 +08:00
Alex Lam S.L
d626e9bf19
improve inline efficiency ( #2924 )
2018-02-17 02:37:13 +08:00
Alex Lam S.L
a2a9459684
fix unsafe evaluate of AST_Function ( #2920 )
...
fixes #2919
2018-02-16 17:21:46 +08:00
Alex Lam S.L
d316fb139d
fix unsafe evaluate on type-converting operators ( #2917 )
...
fixes #2916
2018-02-14 16:48:47 +08:00
Alex Lam S.L
83d8aa8b12
fix collapse_vars within loops ( #2915 )
...
fixes #2914
2018-02-14 05:15:52 +08:00
Alex Lam S.L
d8e0e34354
collapse within unary expressions ( #2910 )
2018-02-13 07:10:37 +08:00
Alex Lam S.L
0c4f315c02
fix corner case in collapse_vars ( #2909 )
...
fixes #2908
2018-02-13 01:41:22 +08:00
Alex Lam S.L
0809699bdc
simplify do-while into for ( #2907 )
...
fixes #2904
2018-02-12 23:28:28 +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
bf1d47180c
fix join_vars on property accessors ( #2895 )
...
fixes #2893
2018-02-09 01:52:39 +08:00
Alex Lam S.L
d66d86f20b
account for exceptions in AST_Assign.left ( #2892 )
...
fixes #2891
2018-02-08 03:31:51 +08:00
Alex Lam S.L
d69d8007d6
evaluate to{Low,Upp}erCase() under unsafe ( #2886 )
2018-02-06 15:57:15 +08:00
Dan
9637f51b68
change undefined == x to null == x ( #2882 )
...
fixes #2871
2018-02-05 15:00:23 +08:00
Alex Lam S.L
3026bd8975
improve exceptional flow compression by collapse_vars ( #2880 )
2018-02-04 04:18:22 +08:00
Alex Lam S.L
78a44d5ab0
maintain order between side-effects and externally observable assignments ( #2879 )
...
fixes #2878
2018-02-04 03:58:49 +08:00
Alex Lam S.L
7e13c0db40
handle break & continue in collapse_vars ( #2875 )
...
fixes #2873
2018-02-03 07:58:43 +08:00
Alex Lam S.L
e6a2e9e4d0
allow collapse_vars across conditional branches ( #2867 )
2018-02-03 02:44:40 +08:00
Alex Lam S.L
e773f03927
fix assignment logic in reduce_vars ( #2872 )
...
fixes #2869
2018-02-03 01:33:09 +08:00
Alex Lam S.L
b16380d669
fix missing corner case in #2855 ( #2868 )
2018-02-02 18:08:56 +08:00
Alex Lam S.L
c3a002ff97
account for side-effects in comparisons of null & undefined ( #2863 )
2018-02-01 19:15:17 +08:00
Alex Lam S.L
fad6766a90
simplify comparisons with undefined & null ( #2862 )
...
fixes #2857
2018-02-01 16:50:54 +08:00
Alex Lam S.L
aa664dea0a
avoid evaluate of compound assignment after dead_code transform ( #2861 )
...
fixes #2860
2018-02-01 16:18:29 +08:00
Alex Lam S.L
102f994b9d
account for declaration assignment in collapse_vars ( #2859 )
...
fixes #2858
2018-02-01 15:09:53 +08:00
Alex Lam S.L
2a4c68be4f
relax collapse_vars on AST_Exit ( #2855 )
...
First introduced in #1862 to stop assignments to migrate beyond `return` or `throw`. Since then `collapse_vars` has been improved to handle various side-effect-related corner cases.
2018-01-31 23:49:59 +08:00
Alex Lam S.L
541e6011af
improve symbol replacement heuristic ( #2851 )
2018-01-29 17:41:15 +08:00
Alex Lam S.L
6fa3fbeae8
compress chained compound assignments ( #2850 )
2018-01-29 15:13:25 +08:00
Alex Lam S.L
193612ac67
fix accounting after conversion to assignment ( #2847 )
...
Missing reference to `AST_SymbolRef` created by `unused` causes `collapse_vars` to misbehave.
fixes #2846
2018-01-26 14:21:11 +08:00
Alex Lam S.L
ec4202590d
drop assignments to constant expressions only ( #2839 )
...
fixes #2838
2018-01-23 02:49:54 +08:00
Alex Lam S.L
5e2cd07d6f
handle duplicate function declarations correctly ( #2837 )
...
fixes #2836
2018-01-23 01:28:09 +08:00
Alex Lam S.L
e2dc9cf091
fix unsafe evaluate of AST_Array ( #2825 )
...
fixes #2822
2018-01-21 01:39:44 +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
3e7873217c
improve unused on built-in functions ( #2817 )
2018-01-19 20:41:57 +08:00