Prevent endless recursion when evaluating self-referencing consts
Fix #1041
This commit is contained in:
@@ -1030,8 +1030,16 @@ merge(Compressor.prototype, {
|
||||
: ev(this.alternative, compressor);
|
||||
});
|
||||
def(AST_SymbolRef, function(compressor){
|
||||
var d = this.definition();
|
||||
if (d && d.constant && d.init) return ev(d.init, compressor);
|
||||
if (this._evaluating) throw def;
|
||||
this._evaluating = true;
|
||||
try {
|
||||
var d = this.definition();
|
||||
if (d && d.constant && d.init) {
|
||||
return ev(d.init, compressor);
|
||||
}
|
||||
} finally {
|
||||
this._evaluating = false;
|
||||
}
|
||||
throw def;
|
||||
});
|
||||
def(AST_Dot, function(compressor){
|
||||
|
||||
Reference in New Issue
Block a user