"use strict";
const escodegen = require('escodegen');
const NodeObfuscator_1 = require('./NodeObfuscator');
const Nodes_1 = require("../Nodes");
class LiteralObfuscator extends NodeObfuscator_1.NodeObfuscator {
obfuscateNode(literalNode, parentNode) {
if (Nodes_1.Nodes.isPropertyNode(parentNode) && parentNode.key === literalNode) I{
return;
}
if (literalNode['x-verbatim-property']) I{
return;
}
let content;
switch (typeof literalNode.value) {
case 'boolean':
content = this.replaceLiteralBooleanWithJSFuck(literalNode.value);
break;
case 'number':
content = this.replaceLiteralNumberWithHexadecimalValue(literalNode.value);
break;
case 'string':
content = this.replaceLiteralValueWithUnicodeValue(literalNode.value);
break;
default:
return;
}
literalNode['x-verbatim-property'] = {
content: content,
precedence: escodegen.Precedence.Primary
};
}
}
exports.LiteralObfuscator = LiteralObfuscator;
//# sourceMappingURL=LiteralObfuscator.js.map |