diff options
author | Mihai Bazon <mihai@bazon.net> | 2012-09-28 11:12:47 +0300 |
---|---|---|
committer | Mihai Bazon <mihai@bazon.net> | 2012-09-28 11:12:47 +0300 |
commit | 896444482a4044c21b68a1eb58cfe8639b628279 (patch) | |
tree | a893f8e1bb2d420a591f360b51bb37aca83fe581 | |
parent | 05e15b1c0c04f673524e0946b5e1b6a60110ada1 (diff) | |
download | tracifyjs-896444482a4044c21b68a1eb58cfe8639b628279.tar.gz tracifyjs-896444482a4044c21b68a1eb58cfe8639b628279.zip |
minor
-rw-r--r-- | lib/ast.js | 4 | ||||
-rw-r--r-- | lib/scope.js | 10 |
2 files changed, 12 insertions, 2 deletions
@@ -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(); }); |