restringer
Version:
Deobfuscate Javascript with emphasis on reconstructing strings
19 lines (18 loc) • 633 B
JavaScript
/**
*
* @param {ASTNode} binaryExpression
* @return {boolean} true if ultimately the binary expression contains only literals; false otherwise
*/
function doesBinaryExpressionContainOnlyLiterals(binaryExpression) {
switch (binaryExpression.type) {
case 'BinaryExpression':
return doesBinaryExpressionContainOnlyLiterals(binaryExpression.left) &&
doesBinaryExpressionContainOnlyLiterals(binaryExpression.right);
case 'UnaryExpression':
return doesBinaryExpressionContainOnlyLiterals(binaryExpression.argument);
case 'Literal':
return true;
}
return false;
}
export {doesBinaryExpressionContainOnlyLiterals};