[Fix] --define replaces SymbolRefs in LHS of assignments

See #208 for context
This commit is contained in:
Christopher Chedeau
2015-08-10 11:22:36 -07:00
parent 464a942a95
commit 3ff0b9e0c9
2 changed files with 20 additions and 1 deletions

View File

@@ -2277,7 +2277,15 @@ merge(Compressor.prototype, {
});
OPT(AST_SymbolRef, function(self, compressor){
if (self.undeclared()) {
function isLHS(symbol, parent) {
return (
parent instanceof AST_Binary &&
parent.operator === '=' &&
parent.left === symbol
);
}
if (self.undeclared() && !isLHS(self, compressor.parent())) {
var defines = compressor.option("global_defs");
if (defines && defines.hasOwnProperty(self.name)) {
return make_node_from_constant(compressor, defines[self.name], self);