Do not rename parent function with same name

This commit is contained in:
2019-11-27 22:41:13 +03:00
parent 30bca8526c
commit d8b24c166d
6 changed files with 45 additions and 3 deletions
+1 -1
View File
File diff suppressed because one or more lines are too long
+1 -1
View File
File diff suppressed because one or more lines are too long
+1 -1
View File
File diff suppressed because one or more lines are too long
@@ -173,6 +173,7 @@ export class FunctionDeclarationTransformer extends AbstractNodeTransformer {
enter: (node: ESTree.Node, parentNode: ESTree.Node | null): void => {
if (
parentNode
&& (parentNode !== lexicalScopeNode)
&& NodeGuards.isReplaceableIdentifierNode(node, parentNode)
&& !NodeMetadata.isRenamedIdentifier(node)
) {
@@ -0,0 +1,9 @@
function e() {
function e() {
}
e();
}
(function() {
e();
})();
@@ -0,0 +1,32 @@
import { assert } from 'chai';
import { NO_ADDITIONAL_NODES_PRESET } from '../../../src/options/presets/NoCustomNodes';
import { readFileAsString } from '../../helpers/readFileAsString';
import { JavaScriptObfuscator } from '../../../src/JavaScriptObfuscatorFacade';
//
// https://github.com/javascript-obfuscator/javascript-obfuscator/issues/321
//
describe('Issue #321', () => {
describe('Fixture code should nor break', () => {
let obfuscatedCode: string;
before(() => {
const code: string = readFileAsString(__dirname + '/fixtures/issue321.js');
obfuscatedCode = JavaScriptObfuscator.obfuscate(
code,
{
...NO_ADDITIONAL_NODES_PRESET,
stringArray: false,
renameGlobals: true
}
).getObfuscatedCode();
});
it('does not break on run', () => {
assert.doesNotThrow(() => eval(obfuscatedCode));
});
});
});