obfuscators refactoring

This commit is contained in:
sanex3339
2016-06-17 19:22:37 +03:00
parent d9323e2fb1
commit a99ee3da0f
6 changed files with 120 additions and 153 deletions
+95 -111
View File
@@ -213,9 +213,9 @@ module.exports =
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
var estraverse = __webpack_require__(5);
var NodeType_1 = __webpack_require__(3);
var Nodes_1 = __webpack_require__(2);
var estraverse = __webpack_require__(3);
var NodeType_1 = __webpack_require__(2);
var Nodes_1 = __webpack_require__(4);
var Utils_1 = __webpack_require__(0);
var NodeUtils = function () {
@@ -329,11 +329,55 @@ module.exports =
"use strict";
"use strict";
var Utils_1 = __webpack_require__(0);
exports.NodeType = Utils_1.Utils.strEnumify({
ArrayExpression: 'ArrayExpression',
ArrowFunctionExpression: 'ArrowFunctionExpression',
AssignmentExpression: 'AssignmentExpression',
BinaryExpression: 'BinaryExpression',
BlockStatement: 'BlockStatement',
CallExpression: 'CallExpression',
CatchClause: 'CatchClause',
ClassDeclaration: 'ClassDeclaration',
ExpressionStatement: 'ExpressionStatement',
FunctionDeclaration: 'FunctionDeclaration',
FunctionExpression: 'FunctionExpression',
Identifier: 'Identifier',
IfStatement: 'IfStatement',
Literal: 'Literal',
LogicalExpression: 'LogicalExpression',
MemberExpression: 'MemberExpression',
MethodDefinition: 'MethodDefinition',
ObjectExpression: 'ObjectExpression',
Program: 'Program',
Property: 'Property',
ReturnStatement: 'ReturnStatement',
TryStatement: 'TryStatement',
UnaryExpression: 'UnaryExpression',
UpdateExpression: 'UpdateExpression',
VariableDeclaration: 'VariableDeclaration',
VariableDeclarator: 'VariableDeclarator',
WhileStatement: 'WhileStatement'
});
/***/ },
/* 3 */
/***/ function(module, exports) {
module.exports = require("estraverse");
/***/ },
/* 4 */
/***/ function(module, exports, __webpack_require__) {
"use strict";
"use strict";
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
var NodeType_1 = __webpack_require__(3);
var NodeType_1 = __webpack_require__(2);
var Nodes = function () {
function Nodes() {
@@ -396,45 +440,7 @@ module.exports =
exports.Nodes = Nodes;
/***/ },
/* 3 */
/***/ function(module, exports, __webpack_require__) {
"use strict";
"use strict";
var Utils_1 = __webpack_require__(0);
exports.NodeType = Utils_1.Utils.strEnumify({
ArrayExpression: 'ArrayExpression',
ArrowFunctionExpression: 'ArrowFunctionExpression',
AssignmentExpression: 'AssignmentExpression',
BinaryExpression: 'BinaryExpression',
BlockStatement: 'BlockStatement',
CallExpression: 'CallExpression',
CatchClause: 'CatchClause',
ClassDeclaration: 'ClassDeclaration',
ExpressionStatement: 'ExpressionStatement',
FunctionDeclaration: 'FunctionDeclaration',
FunctionExpression: 'FunctionExpression',
Identifier: 'Identifier',
IfStatement: 'IfStatement',
Literal: 'Literal',
LogicalExpression: 'LogicalExpression',
MemberExpression: 'MemberExpression',
MethodDefinition: 'MethodDefinition',
ObjectExpression: 'ObjectExpression',
Program: 'Program',
Property: 'Property',
ReturnStatement: 'ReturnStatement',
TryStatement: 'TryStatement',
UnaryExpression: 'UnaryExpression',
UpdateExpression: 'UpdateExpression',
VariableDeclaration: 'VariableDeclaration',
VariableDeclarator: 'VariableDeclarator',
WhileStatement: 'WhileStatement'
});
/***/ },
/* 4 */
/* 5 */
/***/ function(module, exports, __webpack_require__) {
"use strict";
@@ -483,12 +489,6 @@ module.exports =
exports.Node = Node;
/***/ },
/* 5 */
/***/ function(module, exports) {
module.exports = require("estraverse");
/***/ },
/* 6 */
/***/ function(module, exports, __webpack_require__) {
@@ -500,8 +500,9 @@ module.exports =
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
var estraverse = __webpack_require__(3);
var JSFuck_1 = __webpack_require__(9);
var Nodes_1 = __webpack_require__(2);
var Nodes_1 = __webpack_require__(4);
var Utils_1 = __webpack_require__(0);
var NodeObfuscator = function () {
@@ -519,6 +520,16 @@ module.exports =
return new RegExp(reservedName, 'g').test(name);
});
}
}, {
key: "replaceAndStoreIdentifiersNames",
value: function replaceAndStoreIdentifiersNames(node, namesMap) {
if (Nodes_1.Nodes.isIdentifierNode(node) && !this.isReservedName(node.name)) {
namesMap.set(node.name, Utils_1.Utils.getRandomVariableName());
node.name = namesMap.get(node.name);
return;
}
return estraverse.VisitorOption.Skip;
}
}, {
key: "replaceNodeIdentifierByNewValue",
value: function replaceNodeIdentifierByNewValue(node, parentNode, namesMap) {
@@ -807,9 +818,9 @@ module.exports =
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
var estraverse = __webpack_require__(5);
var estraverse = __webpack_require__(3);
var AppendState_1 = __webpack_require__(7);
var NodeType_1 = __webpack_require__(3);
var NodeType_1 = __webpack_require__(2);
var CatchClauseObfuscator_1 = __webpack_require__(31);
var ConsoleOutputDisableExpressionNode_1 = __webpack_require__(19);
var DebugProtectionNodesGroup_1 = __webpack_require__(28);
@@ -1038,7 +1049,7 @@ module.exports =
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
var esprima = __webpack_require__(8);
var Node_1 = __webpack_require__(4);
var Node_1 = __webpack_require__(5);
var NodeUtils_1 = __webpack_require__(1);
var ConsoleOutputDisableExpressionNode = function (_Node_1$Node) {
@@ -1085,8 +1096,8 @@ module.exports =
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
var NodeType_1 = __webpack_require__(3);
var Node_1 = __webpack_require__(4);
var NodeType_1 = __webpack_require__(2);
var Node_1 = __webpack_require__(5);
var NodeUtils_1 = __webpack_require__(1);
var DebugProtectionFunctionCallNode = function (_Node_1$Node) {
@@ -1144,8 +1155,8 @@ module.exports =
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
var NodeType_1 = __webpack_require__(3);
var Node_1 = __webpack_require__(4);
var NodeType_1 = __webpack_require__(2);
var Node_1 = __webpack_require__(5);
var NodeUtils_1 = __webpack_require__(1);
var DebugProtectionFunctionIntervalNode = function (_Node_1$Node) {
@@ -1229,7 +1240,7 @@ module.exports =
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
var esprima = __webpack_require__(8);
var Node_1 = __webpack_require__(4);
var Node_1 = __webpack_require__(5);
var NodeUtils_1 = __webpack_require__(1);
var Utils_1 = __webpack_require__(0);
@@ -1293,7 +1304,7 @@ module.exports =
var JSFuck_1 = __webpack_require__(9);
var NoCustomNodesPreset_1 = __webpack_require__(13);
var JavaScriptObfuscator_1 = __webpack_require__(11);
var Node_1 = __webpack_require__(4);
var Node_1 = __webpack_require__(5);
var NodeUtils_1 = __webpack_require__(1);
var Utils_1 = __webpack_require__(0);
@@ -1356,7 +1367,7 @@ module.exports =
var esprima = __webpack_require__(8);
var AppendState_1 = __webpack_require__(7);
var Node_1 = __webpack_require__(4);
var Node_1 = __webpack_require__(5);
var NodeUtils_1 = __webpack_require__(1);
var Utils_1 = __webpack_require__(0);
@@ -1433,7 +1444,7 @@ module.exports =
var AppendState_1 = __webpack_require__(7);
var JSFuck_1 = __webpack_require__(9);
var NoCustomNodesPreset_1 = __webpack_require__(13);
var Node_1 = __webpack_require__(4);
var Node_1 = __webpack_require__(5);
var NodeUtils_1 = __webpack_require__(1);
var Utils_1 = __webpack_require__(0);
@@ -1510,8 +1521,8 @@ module.exports =
var escodegen = __webpack_require__(10);
var AppendState_1 = __webpack_require__(7);
var NodeType_1 = __webpack_require__(3);
var Node_1 = __webpack_require__(4);
var NodeType_1 = __webpack_require__(2);
var Node_1 = __webpack_require__(5);
var NodeUtils_1 = __webpack_require__(1);
var Utils_1 = __webpack_require__(0);
@@ -1623,7 +1634,7 @@ module.exports =
var JSFuck_1 = __webpack_require__(9);
var NoCustomNodesPreset_1 = __webpack_require__(13);
var JavaScriptObfuscator_1 = __webpack_require__(11);
var Node_1 = __webpack_require__(4);
var Node_1 = __webpack_require__(5);
var NodeUtils_1 = __webpack_require__(1);
var Utils_1 = __webpack_require__(0);
@@ -1828,10 +1839,8 @@ module.exports =
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
var estraverse = __webpack_require__(5);
var estraverse = __webpack_require__(3);
var NodeObfuscator_1 = __webpack_require__(6);
var Nodes_1 = __webpack_require__(2);
var Utils_1 = __webpack_require__(0);
var CatchClauseObfuscator = function (_NodeObfuscator_1$Nod) {
_inherits(CatchClauseObfuscator, _NodeObfuscator_1$Nod);
@@ -1863,13 +1872,8 @@ module.exports =
var _this2 = this;
estraverse.replace(catchClauseNode.param, {
leave: function leave(node, parentNode) {
if (Nodes_1.Nodes.isIdentifierNode(node) && !_this2.isReservedName(node.name)) {
_this2.catchClauseParam.set(node.name, Utils_1.Utils.getRandomVariableName());
node.name = _this2.catchClauseParam.get(node.name);
return;
}
return estraverse.VisitorOption.Skip;
leave: function leave(node) {
return _this2.replaceAndStoreIdentifiersNames(node, _this2.catchClauseParam);
}
});
}
@@ -1906,12 +1910,10 @@ module.exports =
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
var estraverse = __webpack_require__(5);
var NodeType_1 = __webpack_require__(3);
var estraverse = __webpack_require__(3);
var NodeType_1 = __webpack_require__(2);
var NodeObfuscator_1 = __webpack_require__(6);
var Nodes_1 = __webpack_require__(2);
var NodeUtils_1 = __webpack_require__(1);
var Utils_1 = __webpack_require__(0);
var FunctionDeclarationObfuscator = function (_NodeObfuscator_1$Nod) {
_inherits(FunctionDeclarationObfuscator, _NodeObfuscator_1$Nod);
@@ -1947,12 +1949,7 @@ module.exports =
estraverse.replace(functionDeclarationNode.id, {
leave: function leave(node) {
if (Nodes_1.Nodes.isIdentifierNode(node) && !_this2.isReservedName(node.name)) {
_this2.functionName.set(node.name, Utils_1.Utils.getRandomVariableName());
node.name = _this2.functionName.get(node.name);
return;
}
return estraverse.VisitorOption.Skip;
return _this2.replaceAndStoreIdentifiersNames(node, _this2.functionName);
}
});
}
@@ -1990,10 +1987,8 @@ module.exports =
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
var estraverse = __webpack_require__(5);
var estraverse = __webpack_require__(3);
var NodeObfuscator_1 = __webpack_require__(6);
var Nodes_1 = __webpack_require__(2);
var Utils_1 = __webpack_require__(0);
var FunctionObfuscator = function (_NodeObfuscator_1$Nod) {
_inherits(FunctionObfuscator, _NodeObfuscator_1$Nod);
@@ -2027,12 +2022,7 @@ module.exports =
functionNode.params.forEach(function (paramsNode) {
estraverse.replace(paramsNode, {
leave: function leave(node) {
if (Nodes_1.Nodes.isIdentifierNode(node) && !_this2.isReservedName(node.name)) {
_this2.functionParams.set(node.name, Utils_1.Utils.getRandomVariableName());
node.name = _this2.functionParams.get(node.name);
return;
}
return estraverse.VisitorOption.Skip;
return _this2.replaceAndStoreIdentifiersNames(node, _this2.functionParams);
}
});
});
@@ -2074,7 +2064,7 @@ module.exports =
var escodegen = __webpack_require__(10);
var NodeObfuscator_1 = __webpack_require__(6);
var Nodes_1 = __webpack_require__(2);
var Nodes_1 = __webpack_require__(4);
var LiteralObfuscator = function (_NodeObfuscator_1$Nod) {
_inherits(LiteralObfuscator, _NodeObfuscator_1$Nod);
@@ -2138,10 +2128,10 @@ module.exports =
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
var escodegen = __webpack_require__(10);
var estraverse = __webpack_require__(5);
var NodeType_1 = __webpack_require__(3);
var estraverse = __webpack_require__(3);
var NodeType_1 = __webpack_require__(2);
var NodeObfuscator_1 = __webpack_require__(6);
var Nodes_1 = __webpack_require__(2);
var Nodes_1 = __webpack_require__(4);
var MemberExpressionObfuscator = function (_NodeObfuscator_1$Nod) {
_inherits(MemberExpressionObfuscator, _NodeObfuscator_1$Nod);
@@ -2228,9 +2218,9 @@ module.exports =
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
var estraverse = __webpack_require__(5);
var estraverse = __webpack_require__(3);
var NodeObfuscator_1 = __webpack_require__(6);
var Nodes_1 = __webpack_require__(2);
var Nodes_1 = __webpack_require__(4);
var Utils_1 = __webpack_require__(0);
var MethodDefinitionObfuscator = function (_NodeObfuscator_1$Nod) {
@@ -2297,10 +2287,10 @@ module.exports =
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
var escodegen = __webpack_require__(10);
var estraverse = __webpack_require__(5);
var NodeType_1 = __webpack_require__(3);
var estraverse = __webpack_require__(3);
var NodeType_1 = __webpack_require__(2);
var NodeObfuscator_1 = __webpack_require__(6);
var Nodes_1 = __webpack_require__(2);
var Nodes_1 = __webpack_require__(4);
var Utils_1 = __webpack_require__(0);
var ObjectExpressionObfuscator = function (_NodeObfuscator_1$Nod) {
@@ -2386,10 +2376,9 @@ module.exports =
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
var estraverse = __webpack_require__(5);
var NodeType_1 = __webpack_require__(3);
var estraverse = __webpack_require__(3);
var NodeType_1 = __webpack_require__(2);
var NodeObfuscator_1 = __webpack_require__(6);
var Nodes_1 = __webpack_require__(2);
var NodeUtils_1 = __webpack_require__(1);
var Utils_1 = __webpack_require__(0);
@@ -2428,12 +2417,7 @@ module.exports =
variableDeclarationNode.declarations.forEach(function (declarationNode) {
estraverse.replace(declarationNode.id, {
enter: function enter(node) {
if (Nodes_1.Nodes.isIdentifierNode(node) && !_this2.isReservedName(node.name)) {
_this2.variableNames.set(node.name, Utils_1.Utils.getRandomVariableName());
node.name = _this2.variableNames.get(node.name);
return;
}
return estraverse.VisitorOption.Skip;
return _this2.replaceAndStoreIdentifiersNames(node, _this2.variableNames);
}
});
});
+1 -10
View File
@@ -35,16 +35,7 @@ export class CatchClauseObfuscator extends NodeObfuscator {
*/
private replaceCatchClauseParam (catchClauseNode: ICatchClauseNode): void {
estraverse.replace(catchClauseNode.param, {
leave: (node: INode, parentNode: INode): any => {
if (Nodes.isIdentifierNode(node) && !this.isReservedName(node.name)) {
this.catchClauseParam.set(node.name, Utils.getRandomVariableName());
node.name = this.catchClauseParam.get(node.name);
return;
}
return estraverse.VisitorOption.Skip;
}
leave: (node: INode): any => this.replaceAndStoreIdentifiersNames(node, this.catchClauseParam)
});
}
@@ -6,9 +6,7 @@ import { INode } from "../interfaces/nodes/INode";
import { NodeType } from "../enums/NodeType";
import { NodeObfuscator } from './NodeObfuscator';
import { Nodes } from "../Nodes";
import { NodeUtils } from "../NodeUtils";
import { Utils } from '../Utils';
/**
* replaces:
@@ -43,16 +41,7 @@ export class FunctionDeclarationObfuscator extends NodeObfuscator {
*/
private replaceFunctionName (functionDeclarationNode: IFunctionDeclarationNode): void {
estraverse.replace(functionDeclarationNode.id, {
leave: (node: INode): any => {
if (Nodes.isIdentifierNode(node) && !this.isReservedName(node.name)) {
this.functionName.set(node.name, Utils.getRandomVariableName());
node.name = this.functionName.get(node.name);
return;
}
return estraverse.VisitorOption.Skip;
}
leave: (node: INode): any => this.replaceAndStoreIdentifiersNames(node, this.functionName)
});
}
+1 -10
View File
@@ -36,16 +36,7 @@ export class FunctionObfuscator extends NodeObfuscator {
private replaceFunctionParams (functionNode: IFunctionNode): void {
functionNode.params.forEach((paramsNode: INode) => {
estraverse.replace(paramsNode, {
leave: (node: INode): any => {
if (Nodes.isIdentifierNode(node) && !this.isReservedName(node.name)) {
this.functionParams.set(node.name, Utils.getRandomVariableName());
node.name = this.functionParams.get(node.name);
return;
}
return estraverse.VisitorOption.Skip;
}
leave: (node: INode): any => this.replaceAndStoreIdentifiersNames(node, this.functionParams)
});
});
}
+21
View File
@@ -1,3 +1,5 @@
import * as estraverse from 'estraverse';
import { ICustomNode } from '../interfaces/ICustomNode';
import { INodeObfuscator } from '../interfaces/INodeObfuscator';
import { INode } from "../interfaces/nodes/INode";
@@ -46,6 +48,25 @@ export abstract class NodeObfuscator implements INodeObfuscator {
});
}
/**
* Replaces all identifiers names in specified node with new random names and stores that names in given `namesMap`.
* Reserved names will be ignored.
*
* @param node
* @param namesMap
* @returns {estraverse.VisitorOption}
*/
protected replaceAndStoreIdentifiersNames (node: INode, namesMap: Map <string, string>): estraverse.VisitorOption {
if (Nodes.isIdentifierNode(node) && !this.isReservedName(node.name)) {
namesMap.set(node.name, Utils.getRandomVariableName());
node.name = namesMap.get(node.name);
return;
}
return estraverse.VisitorOption.Skip;
}
/**
* @param node
* @param parentNode
@@ -46,16 +46,7 @@ export class VariableDeclarationObfuscator extends NodeObfuscator {
private replaceVariableName (variableDeclarationNode: IVariableDeclarationNode): void {
variableDeclarationNode.declarations.forEach((declarationNode: IVariableDeclaratorNode) => {
estraverse.replace(declarationNode.id, {
enter: (node: INode): any => {
if (Nodes.isIdentifierNode(node) && !this.isReservedName(node.name)) {
this.variableNames.set(node.name, Utils.getRandomVariableName());
node.name = this.variableNames.get(node.name);
return;
}
return estraverse.VisitorOption.Skip;
}
enter: (node: INode): any => this.replaceAndStoreIdentifiersNames(node, this.variableNames)
});
});
}