[Pkg-javascript-commits] [uglifyjs] 418/491: add SymbolDef IDs to --output ast (#2772)

Jonas Smedegaard dr at jones.dk
Wed Feb 14 19:51:59 UTC 2018


This is an automated email from the git hooks/post-receive script.

js pushed a commit to annotated tag debian/3.3.10-1
in repository uglifyjs.

commit d4d7d99b70da46303aff3152cec197c371596d0b
Author: kzc <kzc at users.noreply.github.com>
Date:   Fri Jan 12 02:41:09 2018 -0500

    add SymbolDef IDs to --output ast (#2772)
---
 bin/uglifyjs | 28 +++++++++++++++++++++++++++-
 lib/scope.js |  2 +-
 2 files changed, 28 insertions(+), 2 deletions(-)

diff --git a/bin/uglifyjs b/bin/uglifyjs
index 3891713..99248f1 100755
--- a/bin/uglifyjs
+++ b/bin/uglifyjs
@@ -11,7 +11,7 @@ var path = require("path");
 var program = require("commander");
 var UglifyJS = require("../tools/node");
 
-var skip_keys = [ "cname", "enclosed", "inlined", "parent_scope", "scope", "thedef", "uses_eval", "uses_with" ];
+var skip_keys = [ "cname", "inlined", "parent_scope", "scope", "uses_eval", "uses_with" ];
 var files = {};
 var options = {
     compress: false,
@@ -223,7 +223,33 @@ function run() {
         }
         fatal(ex);
     } else if (program.output == "ast") {
+        if (!options.compress && !options.mangle) {
+            result.ast.figure_out_scope({});
+        }
         print(JSON.stringify(result.ast, function(key, value) {
+            switch (key) {
+              case "thedef":
+                if (typeof value == "object" && typeof value.id == "number") {
+                    return value.id;
+                }
+                return;
+              case "enclosed":
+                return value.map(function(sym){
+                    return sym.id;
+                });
+              case "variables":
+              case "functions":
+              case "globals":
+                if (value && value.size()) {
+                    var ret = {};
+                    value.each(function(val, key) {
+                        // key/val inverted for readability.
+                        ret[val.id] = key;
+                    });
+                    return ret;
+                }
+                return;
+            }
             if (skip_key(key)) return;
             if (value instanceof UglifyJS.AST_Token) return;
             if (value instanceof UglifyJS.Dictionary) return;
diff --git a/lib/scope.js b/lib/scope.js
index af852bb..55b3ddb 100644
--- a/lib/scope.js
+++ b/lib/scope.js
@@ -57,7 +57,7 @@ function SymbolDef(scope, orig, init) {
     this.id = SymbolDef.next_id++;
 };
 
-SymbolDef.next_id = 1;
+SymbolDef.next_id = 1e6;
 
 SymbolDef.prototype = {
     unmangleable: function(options) {

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-javascript/uglifyjs.git



More information about the Pkg-javascript-commits mailing list