From e836e2ae5fbc61731a9b59b075310f0234c948bc Mon Sep 17 00:00:00 2001 From: Mihai Bazon Date: Tue, 25 Sep 2012 12:48:36 +0300 Subject: minor --- lib/compress.js | 23 ++++++++++++++++++----- 1 file changed, 18 insertions(+), 5 deletions(-) (limited to 'lib') diff --git a/lib/compress.js b/lib/compress.js index e7c01ac1..47053c40 100644 --- a/lib/compress.js +++ b/lib/compress.js @@ -768,21 +768,34 @@ function Compressor(options, false_by_default) { /* -----[ node squeezers ]----- */ SQUEEZE(AST_Directive, function(self, compressor){ - if (self.hoisted || self.scope.has_directive(self.value) !== self.scope) { - return new AST_EmptyStatement(self); + return self.optimize(compressor); + }); + + AST_Directive.DEFMETHOD("optimize", function(compressor){ + if (this.hoisted || this.scope.has_directive(this.value) !== this.scope) { + return make_node(AST_EmptyStatement, this); } - return self; + return this; }); SQUEEZE(AST_Debugger, function(self, compressor){ + return self.optimize(compressor); + }); + + AST_Debugger.DEFMETHOD("optimize", function(compressor){ if (compressor.option("drop_debugger")) - return new AST_EmptyStatement(self); + return make_node(AST_EmptyStatement, this); + return this; }); SQUEEZE(AST_LabeledStatement, function(self, compressor){ self = self.clone(); self.body = self.body.squeeze(compressor); - return self.label.references.length == 0 ? self.body : self; + return self.optimize(compressor); + }); + + AST_LabeledStatement.DEFMETHOD("optimize", function(){ + return this.label.references.length == 0 ? this.body : this; }); SQUEEZE(AST_Statement, function(self, compressor){ -- cgit v1.2.3