vanzy-protect
Version:
Epic Obfuscator Yeahhh
66 lines (65 loc) • 2.76 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.methodDefinition = void 0;
const cfg_1 = require("../config/cfg");
const warn_1 = require("../log/warn");
const comment_1 = require("../obfuscate/comment");
const obfuscateName_1 = require("../obfuscate/obfuscateName");
const stringObfLvl1_1 = require("../obfuscate/stringObfLvl1");
const arrayPattern_1 = require("./arrayPattern");
const assignmentExpression_1 = require("./assignmentExpression");
const objectPattern_1 = require("./objectPattern");
const rightExpression_1 = require("./rightExpression");
const traverse_1 = require("./traverse");
function methodDefinition(expr) {
var data = '';
if (expr.static) {
data += 'static ';
data += (0, comment_1.comment)(2);
}
if (expr.async) {
data += 'async ';
data += (0, comment_1.comment)(2);
}
if (expr.key.type === 'Identifier' && expr.key.name === 'constructor') {
data += (0, comment_1.comment)(2) + 'constructor' + (0, comment_1.comment)(2) + '(';
}
else {
data += '[' + (0, comment_1.comment)(2);
if (expr.computed) {
data += (0, rightExpression_1.rightExpression)(expr.key);
}
else if (expr.key.type === 'Identifier') {
data += (0, stringObfLvl1_1.stringObfLvl1)(expr.key.name);
}
else if (expr.key.type === 'Literal') {
data += (0, stringObfLvl1_1.stringObfLvl1)(expr.key.value);
}
data += ']' + (0, comment_1.comment)(3) + '(';
}
;
expr.value.params.forEach((i, n) => {
if (i.type === 'Identifier') {
var pname = i.name;
if ((0, cfg_1.cfg)().transforms.obfuscateNames)
pname = (0, obfuscateName_1.obfuscateName)(pname);
data += pname + (0, comment_1.comment)(3) + ',' + (0, comment_1.comment)(3);
}
else if (i.type === 'AssignmentPattern') {
data += (0, assignmentExpression_1.assignmentExpression)({ operator: '=', ...i }) + (0, comment_1.comment)(3) + ',' + (0, comment_1.comment)(3);
}
else if (i.type === 'ObjectPattern') {
data += (0, objectPattern_1.objectPattern)(i) + (0, comment_1.comment)(3) + ',' + (0, comment_1.comment)(3);
}
else if (i.type === 'ArrayPattern') {
data += (0, arrayPattern_1.arrayPattern)(i) + (0, comment_1.comment)(3) + ',' + (0, comment_1.comment)(3);
}
else
(0, warn_1.warn)(`Unknown expression type in methodDefinition(e) => e.value.params[${n}] : ${i.type}`);
});
data += '){';
data += (0, traverse_1.traverse)(expr.value.body.body);
data += '}';
return data;
}
exports.methodDefinition = methodDefinition;