[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