var args = eval_args(this.args);
if (!args && !ignore_side_effects) return this;
if (!stat.value) return;
+ var cached_args = [];
if (args && !all(fn.argnames, function(sym, i) {
var value = args[i];
var def = sym.definition();
node._eval = function() {
return value;
};
- cached.push(node);
+ cached_args.push(node);
});
return true;
}) && !ignore_side_effects) return this;
fn.evaluating = true;
var val = stat.value._eval(compressor, ignore_side_effects, cached, depth);
delete fn.evaluating;
+ cached_args.forEach(function(node) {
+ delete node._eval;
+ });
if (val === stat.value) return this;
return val;
} else if (compressor.option("unsafe") && exp instanceof AST_PropAccess) {