Skip to content

Commit 8afbed5

Browse files
Merge pull request #18 from jscrambler/namePrefix
Name prefix
2 parents ecceb95 + ea73834 commit 8afbed5

File tree

2 files changed

+16
-4
lines changed

2 files changed

+16
-4
lines changed

lib/esshorten.js

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -74,16 +74,20 @@
7474
return true;
7575
}
7676

77-
generateName(tip) {
77+
generateName(tip, prefix) {
78+
if (!prefix) {
79+
prefix = '';
80+
}
7881
do {
7982
tip = utility.generateNextName(tip);
80-
} while (!this.passAsUnique(tip));
81-
return tip;
83+
} while (!this.passAsUnique(prefix + tip));
84+
return prefix + tip;
8285
}
8386
}
8487

8588
const run = (scope, options) => {
8689
let generator = new NameGenerator(scope, options);
90+
let prefix = options.renamePrefix;
8791

8892
const shouldRename = options && options.shouldRename || () => true;
8993

@@ -114,7 +118,7 @@
114118
continue;
115119
}
116120

117-
name = generator.generateName(name);
121+
name = generator.generateName(name, prefix);
118122

119123
for (let def of variable.identifiers) {
120124
// change definition's name

test/mangle.coffee

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -184,3 +184,11 @@ describe 'mangle:', ->
184184
return id != 'name'
185185

186186
expect(result.body[0].expression.id.name).to.equal 'name'
187+
188+
describe '`renamePrefix` option:', ->
189+
program = esprima.parse '(function name() { var i = 42; });'
190+
191+
it 'prefixes identifier with the given value', ->
192+
result = esshorten.mangle program,
193+
renamePrefix: 'foo_'
194+
expect(result.body[0].expression.id.name.indexOf('foo_')).to.equal 0

0 commit comments

Comments
 (0)