diff --git a/dist/index.js b/dist/index.js index 19abb395..d5518038 100644 --- a/dist/index.js +++ b/dist/index.js @@ -287,11 +287,9 @@ var NodeUtils = function () { if (!parentNode.parentNode) { throw new ReferenceError('`parentNode` property of `parentNode` of given node is `undefined`'); } - if (!NodeUtils.nodesWithBlockScope.includes(parentNode.parentNode.type)) { - return NodeUtils.getBlockScopesOfNode(parentNode, blockScopes); + if (NodeUtils.nodesWithBlockScope.includes(parentNode.parentNode.type)) { + blockScopes.push(parentNode); } - blockScopes.push(parentNode); - return NodeUtils.getBlockScopesOfNode(parentNode, blockScopes); } if (!Node_1.Node.isProgramNode(parentNode)) { return NodeUtils.getBlockScopesOfNode(parentNode, blockScopes); @@ -5012,7 +5010,7 @@ var FunctionObfuscator = function (_AbstractNodeTransfor) { value: function replaceFunctionParams(functionNode, nodeIdentifier) { var _this3 = this; - estraverse.replace(functionNode, { + var traverseVisitor = { enter: function enter(node, parentNode) { if (Node_1.Node.isReplaceableIdentifierNode(node, parentNode)) { var newNodeName = _this3.identifierReplacer.replace(node.name, nodeIdentifier); @@ -5022,7 +5020,11 @@ var FunctionObfuscator = function (_AbstractNodeTransfor) { } } } + }; + functionNode.params.forEach(function (paramsNode) { + return estraverse.replace(paramsNode, traverseVisitor); }); + estraverse.replace(functionNode.body, traverseVisitor); } }]); return FunctionObfuscator; diff --git a/src/node-transformers/node-obfuscators/FunctionObfuscator.ts b/src/node-transformers/node-obfuscators/FunctionObfuscator.ts index 4c0adc6d..af637106 100644 --- a/src/node-transformers/node-obfuscators/FunctionObfuscator.ts +++ b/src/node-transformers/node-obfuscators/FunctionObfuscator.ts @@ -74,7 +74,7 @@ export class FunctionObfuscator extends AbstractNodeTransformer { * @param nodeIdentifier */ private replaceFunctionParams (functionNode: ESTree.Function, nodeIdentifier: number): void { - estraverse.replace(functionNode, { + const traverseVisitor: estraverse.Visitor = { enter: (node: ESTree.Node, parentNode: ESTree.Node): any => { if (Node.isReplaceableIdentifierNode(node, parentNode)) { const newNodeName: string = this.identifierReplacer.replace(node.name, nodeIdentifier); @@ -85,6 +85,10 @@ export class FunctionObfuscator extends AbstractNodeTransformer { } } } - }); + }; + + functionNode.params.forEach((paramsNode: ESTree.Node) => estraverse.replace(paramsNode, traverseVisitor)); + + estraverse.replace(functionNode.body, traverseVisitor); } } diff --git a/src/node/NodeUtils.ts b/src/node/NodeUtils.ts index 11fb7088..79ea157e 100644 --- a/src/node/NodeUtils.ts +++ b/src/node/NodeUtils.ts @@ -102,13 +102,9 @@ export class NodeUtils { throw new ReferenceError('`parentNode` property of `parentNode` of given node is `undefined`'); } - if (!NodeUtils.nodesWithBlockScope.includes(parentNode.parentNode.type)) { - return NodeUtils.getBlockScopesOfNode(parentNode, blockScopes); + if (NodeUtils.nodesWithBlockScope.includes(parentNode.parentNode.type)) { + blockScopes.push(parentNode); } - - blockScopes.push(parentNode); - - return NodeUtils.getBlockScopesOfNode(parentNode, blockScopes); } if (!Node.isProgramNode(parentNode)) {