From 7ee8f3512eef5eb3fe7d2f678d6c110c3fc810f2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?F=C3=A1bio=20Santos?= Date: Sat, 8 Aug 2015 16:01:16 +0100 Subject: [PATCH] play nice with propmangle --- lib/output.js | 5 +++-- lib/propmangle.js | 8 ++++++++ lib/transform.js | 4 ++++ 3 files changed, 15 insertions(+), 2 deletions(-) diff --git a/lib/output.js b/lib/output.js index 080b3da8..505f94b5 100644 --- a/lib/output.js +++ b/lib/output.js @@ -1180,14 +1180,15 @@ function OutputStream(options) { output.print_name(def ? def.mangled_name || def.name : self.name); }); DEFPRINT(AST_ObjectSymbol, function(self, output){ + var name = self.mangled_key || self.symbol.name; var def = self.symbol.definition(); if (def && def.mangled_name) { - output.print(self.symbol.name); + output.print(name); output.print(':'); output.space(); output.print(def.mangled_name); } else { - output.print(self.symbol.name); + output.print(name); } }); DEFPRINT(AST_Undefined, function(self, output){ diff --git a/lib/propmangle.js b/lib/propmangle.js index 840bda91..ff782b57 100644 --- a/lib/propmangle.js +++ b/lib/propmangle.js @@ -90,6 +90,9 @@ function mangle_properties(ast, options) { if (node instanceof AST_ObjectKeyVal) { add(node.key); } + else if (node instanceof AST_ObjectSymbol) { + add(node.symbol.name); + } else if (node instanceof AST_ObjectProperty) { // setter or getter, since KeyVal is handled above add(node.key.name); @@ -111,6 +114,11 @@ function mangle_properties(ast, options) { if (node instanceof AST_ObjectKeyVal) { node.key = mangle(node.key); } + else if (node instanceof AST_ObjectSymbol) { + if (should_mangle(node.symbol.name)) { + node.mangled_key = mangle(node.symbol.name) + } + } else if (node instanceof AST_ObjectProperty) { // setter or getter node.key.name = mangle(node.key.name); diff --git a/lib/transform.js b/lib/transform.js index 7858759a..266e686f 100644 --- a/lib/transform.js +++ b/lib/transform.js @@ -219,6 +219,10 @@ TreeTransformer.prototype = new TreeWalker; self.properties = do_list(self.properties, tw); }); + _(AST_ObjectSymbol, function(self, tw){ + self.symbol = self.symbol.transform(tw); + }); + _(AST_ObjectProperty, function(self, tw){ self.value = self.value.transform(tw); });