vanzy-protect
Version:
Epic Obfuscator Yeahhh
83 lines (82 loc) • 3.66 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.rightExpression = void 0;
const cfg_1 = require("../config/cfg");
const warn_1 = require("../log/warn");
const obfuscateName_1 = require("../obfuscate/obfuscateName");
const anonFunction_1 = require("./anonFunction");
const arrayExpression_1 = require("./arrayExpression");
const assignmentExpression_1 = require("./assignmentExpression");
const awaitExpression_1 = require("./awaitExpression");
const binaryExpression_1 = require("./binaryExpression");
const callExpression_1 = require("./callExpression");
const chainExpression_1 = require("./chainExpression");
const conditionalExpression_1 = require("./conditionalExpression");
const leftExpression_1 = require("./leftExpression");
const literalExpression_1 = require("./literalExpression");
const memberExpression_1 = require("./memberExpression");
const newExpression_1 = require("./newExpression");
const objectExpression_1 = require("./objectExpression");
const sequenceExpression_1 = require("./sequenceExpression");
const templateString_1 = require("./templateString");
const unaryExpression_1 = require("./unaryExpression");
const updateExpression_1 = require("./updateExpression");
function rightExpression(expr) {
const maybeLeft = (0, leftExpression_1.leftExpression)(expr, false);
if (maybeLeft !== null)
return maybeLeft;
if (expr.type === 'Literal') {
return (0, literalExpression_1.literalExpression)(expr);
}
else if (expr.type === 'BinaryExpression' || expr.type === 'LogicalExpression') {
return (0, binaryExpression_1.binaryExpression)(expr);
}
else if (expr.type === 'Identifier') {
return (0, cfg_1.cfg)().transforms.obfuscateNames ? (0, obfuscateName_1.obfuscateName)(expr.name) : expr.name;
}
else if (expr.type === 'ObjectExpression') {
return (0, objectExpression_1.objectExpression)(expr);
}
else if (expr.type === 'FunctionExpression' || expr.type === 'ArrowFunctionExpression') {
return (0, anonFunction_1.anonFunction)(expr);
}
else if (expr.type === 'CallExpression') {
return (0, callExpression_1.callExpression)(expr);
}
else if (expr.type === 'ArrayExpression') {
return (0, arrayExpression_1.arrayExpression)(expr);
}
else if (expr.type === 'UpdateExpression') {
return (0, updateExpression_1.updateExpression)(expr);
}
else if (expr.type === 'ConditionalExpression') {
return (0, conditionalExpression_1.conditionalExpression)(expr);
}
else if (expr.type === 'AwaitExpression') {
return (0, awaitExpression_1.awaitExpression)(expr);
}
else if (expr.type === 'TemplateLiteral') {
return (0, templateString_1.templateString)(expr);
}
else if (expr.type === 'UnaryExpression') {
return (0, unaryExpression_1.unaryExpression)(expr);
}
else if (expr.type === 'MemberExpression') {
return (0, memberExpression_1.memberExpression)(expr);
}
else if (expr.type === 'NewExpression') {
return (0, newExpression_1.newExpression)(expr);
}
else if (expr.type === 'SequenceExpression') {
return (0, sequenceExpression_1.sequenceExpression)(expr);
}
else if (expr.type === 'AssignmentExpression') {
return '(' + (0, assignmentExpression_1.assignmentExpression)(expr) + ')';
}
else if (expr.type === 'ChainExpression') {
return (0, chainExpression_1.chainExpression)(expr);
}
else
(0, warn_1.warn)(`Unknown expression type in rightExpression(e) : ${expr.type}`);
}
exports.rightExpression = rightExpression;