BaseIdentifierObfuscatingReplacer.spec.ts 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. import { assert } from 'chai';
  2. import { NO_ADDITIONAL_NODES_PRESET } from '../../../../../../src/options/presets/NoCustomNodes';
  3. import { readFileAsString } from '../../../../../helpers/readFileAsString';
  4. import { JavaScriptObfuscator } from '../../../../../../src/JavaScriptObfuscatorFacade';
  5. describe('BaseIdentifierObfuscatingReplacer', () => {
  6. describe('Reserved names', () => {
  7. describe('Variant #1: ignore local reserved names', () => {
  8. let obfuscatedCode: string;
  9. before(() => {
  10. const code: string = readFileAsString(__dirname + '/fixtures/local-reserved-names.js');
  11. obfuscatedCode = JavaScriptObfuscator.obfuscate(
  12. code,
  13. {
  14. ...NO_ADDITIONAL_NODES_PRESET,
  15. reservedNames: ['[abc|ghi]']
  16. }
  17. ).getObfuscatedCode();
  18. });
  19. it('Should keep reserved names without transformations when `reservedNames` option is enabled', () => {
  20. assert.match(
  21. obfuscatedCode,
  22. /var *abc *= *0x1; *var *_0x([a-f0-9]){4,6} *= *0x2; *var *ghi *= *0x3;/
  23. );
  24. });
  25. });
  26. describe('Variant #1: ignore global reserved names', () => {
  27. let obfuscatedCode: string;
  28. before(() => {
  29. const code: string = readFileAsString(__dirname + '/fixtures/global-reserved-names.js');
  30. obfuscatedCode = JavaScriptObfuscator.obfuscate(
  31. code,
  32. {
  33. ...NO_ADDITIONAL_NODES_PRESET,
  34. renameGlobals: true,
  35. reservedNames: ['[abc|ghi]']
  36. }
  37. ).getObfuscatedCode();
  38. });
  39. it('Should keep reserved names without transformations when `reservedNames` option is enabled', () => {
  40. assert.match(
  41. obfuscatedCode,
  42. /var *abc *= *0x1; *var *_0x([a-f0-9]){4,6} *= *0x2; *var *ghi *= *0x3;/
  43. );
  44. });
  45. });
  46. });
  47. });