fixed functionObfuscator runtime regression error

This commit is contained in:
sanex3339
2016-12-24 19:33:16 +03:00
parent fa126e10f4
commit 1271de0b3a
3 changed files with 15 additions and 13 deletions
+7 -5
View File
@@ -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;
@@ -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);
}
}
+2 -6
View File
@@ -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)) {