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
This commit is contained in:
@@ -75,6 +75,7 @@ function Compressor(options, false_by_default) {
|
||||
properties : !false_by_default,
|
||||
pure_getters : !false_by_default && "strict",
|
||||
pure_funcs : null,
|
||||
reduce_funcs : !false_by_default,
|
||||
reduce_vars : !false_by_default,
|
||||
sequences : !false_by_default,
|
||||
side_effects : !false_by_default,
|
||||
@@ -4255,6 +4256,7 @@ merge(Compressor.prototype, {
|
||||
var fixed = self.fixed_value();
|
||||
if (fixed instanceof AST_Defun) {
|
||||
d.fixed = fixed = make_node(AST_Function, fixed, fixed);
|
||||
if (!compressor.option("reduce_funcs")) d.single_use = false;
|
||||
}
|
||||
if (d.single_use && fixed instanceof AST_Function) {
|
||||
if (d.escaped && d.scope !== self.scope || recursive_ref(compressor, d)) {
|
||||
|
||||
Reference in New Issue
Block a user