vanzy-protect
Version:
Epic Obfuscator Yeahhh
40 lines (39 loc) • 1.57 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.leftExpression = exports.getThis = exports.thisStack = void 0;
const cfg_1 = require("../config/cfg");
const warn_1 = require("../log/warn");
const obfuscateName_1 = require("../obfuscate/obfuscateName");
const arrayPattern_1 = require("./arrayPattern");
const memberExpression_1 = require("./memberExpression");
const objectPattern_1 = require("./objectPattern");
exports.thisStack = [];
const getThis = () => exports.thisStack[exports.thisStack.length - 1] ?? 'this';
exports.getThis = getThis;
function leftExpression(expr, warnMsg = true) {
if (!expr) {
(0, warn_1.warn)(`${expr} passed to leftExpression(e), stack trace follows:`);
console.log((new Error()).stack);
}
if (expr.type === 'Identifier') {
if ((0, cfg_1.cfg)().transforms.obfuscateNames)
return (0, obfuscateName_1.obfuscateName)(expr.name);
return expr.name;
}
else if (expr.type === 'MemberExpression') {
return (0, memberExpression_1.memberExpression)(expr);
}
else if (expr.type === 'ThisExpression') {
return (0, exports.getThis)();
}
else if (expr.type === 'ObjectPattern') {
return (0, objectPattern_1.objectPattern)(expr);
}
else if (expr.type === 'ArrayPattern') {
return (0, arrayPattern_1.arrayPattern)(expr);
}
else if (warnMsg)
(0, warn_1.warn)(`Unknown expression type in leftExpression(e) : ${expr.type}`);
return null;
}
exports.leftExpression = leftExpression;