diff options
Diffstat (limited to 'lib')
-rw-r--r-- | lib/compress.js | 15 | ||||
-rw-r--r-- | lib/transform.js | 7 |
2 files changed, 8 insertions, 14 deletions
diff --git a/lib/compress.js b/lib/compress.js index 477fa307..444b1d05 100644 --- a/lib/compress.js +++ b/lib/compress.js @@ -530,12 +530,11 @@ merge(Compressor.prototype, { tw.safe_ids = save_ids; return true; }); - def(AST_Do, function(tw) { + def(AST_DWLoop, function(tw, descend) { var saved_loop = tw.in_loop; tw.in_loop = this; push(tw); - this.body.walk(tw); - this.condition.walk(tw); + descend(); pop(tw); tw.in_loop = saved_loop; return true; @@ -714,16 +713,6 @@ merge(Compressor.prototype, { } } }); - def(AST_While, function(tw) { - var saved_loop = tw.in_loop; - tw.in_loop = this; - push(tw); - this.condition.walk(tw); - this.body.walk(tw); - pop(tw); - tw.in_loop = saved_loop; - return true; - }); })(function(node, func){ node.DEFMETHOD("reduce_vars", func); }); diff --git a/lib/transform.js b/lib/transform.js index dcde62c2..41b24c54 100644 --- a/lib/transform.js +++ b/lib/transform.js @@ -93,7 +93,12 @@ TreeTransformer.prototype = new TreeWalker; self.body = do_list(self.body, tw); }); - _(AST_DWLoop, function(self, tw){ + _(AST_Do, function(self, tw){ + self.body = self.body.transform(tw); + self.condition = self.condition.transform(tw); + }); + + _(AST_While, function(self, tw){ self.condition = self.condition.transform(tw); self.body = self.body.transform(tw); }); |