Add prefix only for variables with global declaration

This commit is contained in:
sanex3339
2018-01-22 23:15:43 +03:00
parent e4f9c100f8
commit cf94be2285
27 changed files with 134 additions and 93 deletions
+5 -6
View File
@@ -6,19 +6,18 @@ import { NO_ADDITIONAL_NODES_PRESET } from '../../src/options/presets/NoCustomNo
let obfuscatedCode: string = JavaScriptObfuscator.obfuscate(
`
var bar = 1;
var baz = 2;
(function(){
function foo () {
eval('var s = 1;');
}
foo();
var bark = bar + baz;
})();
`,
{
...NO_ADDITIONAL_NODES_PRESET,
compact: false,
identifiersPrefix: 'foo',
identifierNamesGenerator: 'mangled'
identifierNamesGenerator: 'mangled',
renameGlobals: true
}
).getObfuscatedCode();
@@ -12,7 +12,7 @@ import { IdentifierNamesGenerator } from '../../../../src/enums/generators/ident
import { InversifyContainerFacade } from '../../../../src/container/InversifyContainerFacade';
describe('HexadecimalIdentifierNamesGenerator', () => {
describe('generate (length: number): string', () => {
describe('generate (length: number, attachPrefix: boolean): string', () => {
describe('Hexadecimal name without prefix', () => {
let identifierNamesGenerator: IIdentifierNamesGenerator,
hexadecimalIdentifierName: string,
@@ -25,30 +25,15 @@ describe('HexadecimalIdentifierNamesGenerator', () => {
identifierNamesGenerator = inversifyContainerFacade.getNamed<IIdentifierNamesGenerator>(
ServiceIdentifiers.IIdentifierNamesGenerator,
IdentifierNamesGenerator.HexadecimalIdentifierNamesGenerator
)
);
hexadecimalIdentifierName = identifierNamesGenerator.generate();
regExp = /^_0x(\w){4,6}$/;
});
describe('variant #1: hexadecimal name with length `4`', () => {
before(() => {
hexadecimalIdentifierName = identifierNamesGenerator.generate(4);
regExp = /^_0x(\w){4}$/;
});
it('should return hexadecimal name', () => {
assert.match(hexadecimalIdentifierName, regExp);
})
});
describe('variant #2: hexadecimal name with length `6`', () => {
before(() => {
hexadecimalIdentifierName = identifierNamesGenerator.generate(6);
regExp = /^_0x(\w){4,6}$/;
});
it('should return hexadecimal name', () => {
assert.match(hexadecimalIdentifierName, regExp);
})
});
it('should return hexadecimal name', () => {
assert.match(hexadecimalIdentifierName, regExp);
})
});
describe('Hexadecimal name with prefix', () => {
@@ -68,7 +53,7 @@ describe('HexadecimalIdentifierNamesGenerator', () => {
IdentifierNamesGenerator.HexadecimalIdentifierNamesGenerator
);
hexadecimalIdentifierName = identifierNamesGenerator.generate(6);
hexadecimalIdentifierName = identifierNamesGenerator.generateWithPrefix();
});
it('should return hexadecimal name with prefix', () => {
@@ -93,7 +78,7 @@ describe('HexadecimalIdentifierNamesGenerator', () => {
IdentifierNamesGenerator.HexadecimalIdentifierNamesGenerator
);
hexadecimalIdentifierName = identifierNamesGenerator.generate(6);
hexadecimalIdentifierName = identifierNamesGenerator.generateWithPrefix();
});
it('should return hexadecimal name with prefix', () => {
@@ -31,7 +31,7 @@ describe('MangledIdentifierNamesGenerator', () => {
const expectedMangledIdentifierName: string = 'a';
beforeEach(() => {
mangledIdentifierName = identifierNamesGenerator.generate(4);
mangledIdentifierName = identifierNamesGenerator.generate();
});
it('should return mangled name', () => {
@@ -45,7 +45,7 @@ describe('MangledIdentifierNamesGenerator', () => {
beforeEach(() => {
for (let i: number = 0; i <= expectedMangledIdentifierPosition; i++) {
mangledIdentifierName = identifierNamesGenerator.generate(6);
mangledIdentifierName = identifierNamesGenerator.generate();
}
});
@@ -60,7 +60,7 @@ describe('MangledIdentifierNamesGenerator', () => {
beforeEach(() => {
for (let i: number = 0; i <= expectedMangledIdentifierPosition; i++) {
mangledIdentifierName = identifierNamesGenerator.generate(6);
mangledIdentifierName = identifierNamesGenerator.generate();
}
});
@@ -75,7 +75,7 @@ describe('MangledIdentifierNamesGenerator', () => {
beforeEach(() => {
for (let i: number = 0; i <= expectedMangledIdentifierPosition; i++) {
mangledIdentifierName = identifierNamesGenerator.generate(6);
mangledIdentifierName = identifierNamesGenerator.generate();
}
});
@@ -90,7 +90,7 @@ describe('MangledIdentifierNamesGenerator', () => {
beforeEach(() => {
for (let i: number = 0; i <= expectedMangledIdentifierPosition; i++) {
mangledIdentifierName = identifierNamesGenerator.generate(6);
mangledIdentifierName = identifierNamesGenerator.generate();
}
});
@@ -110,7 +110,7 @@ describe('MangledIdentifierNamesGenerator', () => {
beforeEach(() => {
for (let i: number = 0; i <= expectedMangledIdentifierPosition2; i++) {
mangledIdentifierName = identifierNamesGenerator.generate(6);
mangledIdentifierName = identifierNamesGenerator.generate();
if (i === expectedMangledIdentifierPosition1) {
mangledIdentifierName1 = mangledIdentifierName;
@@ -150,7 +150,7 @@ describe('MangledIdentifierNamesGenerator', () => {
const expectedMangledIdentifierName: string = 'foo_a';
beforeEach(() => {
mangledIdentifierName = identifierNamesGenerator.generate(4);
mangledIdentifierName = identifierNamesGenerator.generateWithPrefix();
});
it('should return mangled name with prefix', () => {
@@ -162,7 +162,7 @@ describe('MangledIdentifierNamesGenerator', () => {
const expectedMangledIdentifierName: string = 'foo_b';
beforeEach(() => {
mangledIdentifierName = identifierNamesGenerator.generate(4);
mangledIdentifierName = identifierNamesGenerator.generateWithPrefix();
});
it('should return mangled name with prefix', () => {
@@ -191,7 +191,7 @@ describe('MangledIdentifierNamesGenerator', () => {
const expectedMangledIdentifierNameRegExp: RegExp = /(\w){6}_a/;
beforeEach(() => {
mangledIdentifierName = identifierNamesGenerator.generate(4);
mangledIdentifierName = identifierNamesGenerator.generateWithPrefix();
});
it('should return mangled name with prefix', () => {
@@ -203,7 +203,7 @@ describe('MangledIdentifierNamesGenerator', () => {
const expectedMangledIdentifierNameRegExp: RegExp = /(\w){6}_b/;
beforeEach(() => {
mangledIdentifierName = identifierNamesGenerator.generate(4);
mangledIdentifierName = identifierNamesGenerator.generateWithPrefix();
});
it('should return mangled name with prefix', () => {