From: Mihai Bazon Date: Fri, 28 Sep 2012 08:12:47 +0000 (+0300) Subject: minor X-Git-Url: https://git.ndcode.org/public/gitweb.cgi?a=commitdiff_plain;h=896444482a4044c21b68a1eb58cfe8639b628279;p=UglifyJS.git minor --- diff --git a/lib/ast.js b/lib/ast.js index 3e6e1771..0b0273c8 100644 --- a/lib/ast.js +++ b/lib/ast.js @@ -698,9 +698,9 @@ function TreeWalker(callback) { TreeWalker.prototype = { _visit: function(node, descend) { this.stack.push(node); - var ret = this.visit(node, function(){ + var ret = this.visit(node, descend ? function(){ descend.call(node); - }); + } : noop); if (!ret && descend) { descend.call(node); } diff --git a/lib/scope.js b/lib/scope.js index 3165186b..1f564431 100644 --- a/lib/scope.js +++ b/lib/scope.js @@ -209,6 +209,7 @@ AST_Toplevel.DEFMETHOD("figure_out_scope", function(){ node.thedef = sym; } node.reference(); + return true; } }); self.walk(tw); @@ -225,6 +226,10 @@ AST_Scope.DEFMETHOD("init_scope_vars", function(){ this.cname = -1; // the current index for mangling functions/variables }); +AST_Scope.DEFMETHOD("strict", function(){ + return this.has_directive("use strict"); +}); + AST_Lambda.DEFMETHOD("init_scope_vars", function(){ AST_Scope.prototype.init_scope_vars.call(this); this.uses_arguments = false; @@ -298,6 +303,11 @@ AST_Scope.DEFMETHOD("next_mangled", function(){ } }); +AST_Scope.DEFMETHOD("references", function(sym){ + if (sym instanceof AST_Symbol) sym = sym.definition(); + return this.enclosed.indexOf(sym) < 0 ? null : sym; +}); + AST_Symbol.DEFMETHOD("unmangleable", function(){ return this.definition().unmangleable(); });