diff --git a/test/dev/dev.ts b/test/dev/dev.ts index 90f1c24e..c1c69f9c 100644 --- a/test/dev/dev.ts +++ b/test/dev/dev.ts @@ -7,7 +7,7 @@ import { NO_ADDITIONAL_NODES_PRESET } from '../../src/options/presets/NoCustomNo let obfuscatedCode: string = JavaScriptObfuscator.obfuscate( ` - const foo = 0; + const foo = 0..toString(); const bar = 'abc'; console.log(foo, bar); diff --git a/test/functional-tests/node-transformers/converting-transformers/numbers-to-numerical-expressions-transformer/NumbersToNumericalExpressionsTransformer.spec.ts b/test/functional-tests/node-transformers/converting-transformers/numbers-to-numerical-expressions-transformer/NumbersToNumericalExpressionsTransformer.spec.ts index 84e94990..6fd77bb7 100644 --- a/test/functional-tests/node-transformers/converting-transformers/numbers-to-numerical-expressions-transformer/NumbersToNumericalExpressionsTransformer.spec.ts +++ b/test/functional-tests/node-transformers/converting-transformers/numbers-to-numerical-expressions-transformer/NumbersToNumericalExpressionsTransformer.spec.ts @@ -164,4 +164,26 @@ describe('NumbersToNumericalExpressionsTransformer', function () { assert.match(obfuscatedCode, regExp); }); }); + + describe('Variant #4: parent node is member expression', () => { + const regExp: RegExp = /\((?:-?0x[a-zA-Z0-9]+(?: *[+\-*] *)?)*?\)\['toString']\(\);/; + + let obfuscatedCode: string; + + before(() => { + const code: string = readFileAsString(__dirname + '/fixtures/member-expression.js'); + + obfuscatedCode = JavaScriptObfuscator.obfuscate( + code, + { + ...NO_ADDITIONAL_NODES_PRESET, + numbersToExpressions: true + } + ).getObfuscatedCode(); + }); + + it('should replace member expression with literal object with expression', () => { + assert.match(obfuscatedCode, regExp); + }); + }); }); diff --git a/test/functional-tests/node-transformers/converting-transformers/numbers-to-numerical-expressions-transformer/fixtures/member-expression.js b/test/functional-tests/node-transformers/converting-transformers/numbers-to-numerical-expressions-transformer/fixtures/member-expression.js new file mode 100644 index 00000000..9b3edae1 --- /dev/null +++ b/test/functional-tests/node-transformers/converting-transformers/numbers-to-numerical-expressions-transformer/fixtures/member-expression.js @@ -0,0 +1 @@ +0..toString(); \ No newline at end of file