"use strict";
const estraverse = require('estraverse');
const NodeObfuscator_1 = require('./NodeObfuscator');
class CatchClauseObfuscator extends NodeObfuscator_1.NodeObfuscator {
constructor(...args) {
super(...args);
this.catchClauseParam = new Map();
}
obfuscateNode(catchClauseNode) {
this.storeCatchClauseParam(catchClauseNode);
this.replaceCatchClauseParam(catchClauseNode);
}
storeCatchClauseParam(catchClauseNode) {
estraverse.traverse(catchClauseNode.param, {
leave: (node) => this.storeIdentifiersNames(node, this.catchClauseParam)
});
}
replaceCatchClauseParam(catchClauseNode) {
estraverse.replace(catchClauseNode, {
leave: (node, parentNode) => {
this.replaceIdentifiersWithRandomNames(node, parentNode, this.catchClauseParam);
}
});
}
}
exports.CatchClauseObfuscator = CatchClauseObfuscator;
//# sourceMappingURL=CatchClauseObfuscator.js.map |