@@ -1828,12 +1828,17 @@ merge(Compressor.prototype, {
|
||||
return this;
|
||||
});
|
||||
def(AST_UnaryPrefix, function(compressor){
|
||||
var e = this.expression;
|
||||
// Function would be evaluated to an array and so typeof would
|
||||
// incorrectly return 'object'. Hence making is a special case.
|
||||
if (this.operator == "typeof" && this.expression instanceof AST_Function) {
|
||||
if (compressor.option("typeofs")
|
||||
&& this.operator == "typeof"
|
||||
&& (e instanceof AST_Lambda
|
||||
|| e instanceof AST_SymbolRef
|
||||
&& e.fixed_value() instanceof AST_Lambda)) {
|
||||
return typeof function(){};
|
||||
}
|
||||
var e = ev(this.expression, compressor);
|
||||
e = ev(e, compressor);
|
||||
if (e === this.expression) return this;
|
||||
switch (this.operator) {
|
||||
case "!": return !e;
|
||||
@@ -1894,7 +1899,6 @@ merge(Compressor.prototype, {
|
||||
return value === node ? this : value;
|
||||
});
|
||||
def(AST_SymbolRef, function(compressor){
|
||||
if (!compressor.option("reduce_vars")) return this;
|
||||
var fixed = this.fixed_value();
|
||||
if (!fixed) return this;
|
||||
this._eval = return_this;
|
||||
|
||||
Reference in New Issue
Block a user