MethodDefinitionObfuscator.js 1.1 KB

12345678910111213141516171819202122232425262728
  1. "use strict";
  2. const NodeObfuscator_1 = require('./NodeObfuscator');
  3. let estraverse = require('estraverse');
  4. class MethodDefinitionObfuscator extends NodeObfuscator_1.NodeObfuscator {
  5. constructor(...args) {
  6. super(...args);
  7. this.methodName = new Map();
  8. this.ignoredNames = ['constructor'];
  9. }
  10. obfuscateNode(methodDefinitionNode, parentNode) {
  11. this.replaceMethodName(methodDefinitionNode);
  12. }
  13. replaceMethodName(methodDefinitionNode) {
  14. estraverse.replace(methodDefinitionNode.key, {
  15. leave: (node) => {
  16. if (node.type !== 'Identifier' ||
  17. this.ignoredNames.indexOf(node.name) >= 0 ||
  18. methodDefinitionNode.computed === true) {
  19. return;
  20. }
  21. methodDefinitionNode.computed = true;
  22. node.name = this.replaceLiteralStringByArrayElement(node.name);
  23. }
  24. });
  25. }
  26. }
  27. exports.MethodDefinitionObfuscator = MethodDefinitionObfuscator;
  28. //# sourceMappingURL=MethodDefinitionObfuscator.js.map