ConsoleOutputDisableExpressionNode.js 1.4 KB

123456789101112131415161718192021222324252627282930
  1. "use strict";
  2. const esprima = require('esprima');
  3. const Node_1 = require('../Node');
  4. const NodeUtils_1 = require("../../NodeUtils");
  5. class ConsoleOutputDisableExpressionNode extends Node_1.Node {
  6. constructor() {
  7. super();
  8. this.node = this.getNodeStructure();
  9. }
  10. appendNode(blockScopeNode) {
  11. NodeUtils_1.NodeUtils.prependNode(blockScopeNode.body, this.getNode());
  12. }
  13. getNodeStructure() {
  14. return NodeUtils_1.NodeUtils.getBlockScopeNodeByIndex(esprima.parse(`
  15. (function () {
  16. var _ = '(\u0004\u0006\u0003\u0005[]' + '["filter"]["\u0007tructor"]' + '("return this")()' + '.' + '\u0003;\u0006\u0002\u0005\u0004};' + '_\u0003.log\u0001.in' + 'fo\u0001.' + 'war' + 'n\u0001.er' + 'r' + 'or\u0001})();' + '\u0001\u0005_\u0002;' + '_\u0003\u0002function' + '\u0003\u0007ole\u0004\u0002 ()' + '{\u0005 = \u0006var ' + '_\u0007cons',
  17. Y,
  18. $;
  19. for (Y in $ = "\u0007\u0006\u0005\u0004\u0003\u0002\u0001") {
  20. var arr = _.split($[Y]);
  21. _ = arr.join(arr.pop());
  22. }
  23. []["filter"]["constructor"](_)();
  24. })()
  25. `));
  26. }
  27. }
  28. exports.ConsoleOutputDisableExpressionNode = ConsoleOutputDisableExpressionNode;