UNPKG

vanzy-protect

Version:

Epic Obfuscator Yeahhh

83 lines (82 loc) 3.66 kB
"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;