mirror of
https://github.com/javascript-obfuscator/javascript-obfuscator
synced 2026-08-09 12:42:29 +00:00
* The splitStrings option now correctly works with transformObjectKeys option
* Internal `TransformersRunner` rework to support topological sort of node transformers
This commit is contained in:
+4
-6
@@ -6,18 +6,16 @@ import { NO_ADDITIONAL_NODES_PRESET } from '../../src/options/presets/NoCustomNo
|
||||
|
||||
let obfuscatedCode: string = JavaScriptObfuscator.obfuscate(
|
||||
`
|
||||
function hi() {
|
||||
console.log("Hello World!");
|
||||
}
|
||||
hi();
|
||||
var s = {
|
||||
'abcdefg': 'abcdefg'
|
||||
};
|
||||
`,
|
||||
{
|
||||
...NO_ADDITIONAL_NODES_PRESET,
|
||||
compact: false,
|
||||
splitStrings: true,
|
||||
splitStringsChunkLength: 4,
|
||||
controlFlowFlattening: true,
|
||||
controlFlowFlatteningThreshold: 1
|
||||
transformObjectKeys: true
|
||||
}
|
||||
).getObfuscatedCode();
|
||||
|
||||
|
||||
+21
@@ -162,4 +162,25 @@ describe('SplitStringTransformer', () => {
|
||||
assert.match(obfuscatedCode, /^var *test *= *{\['ab' *\+ *'cd' *\+ *'ef' *\+ *'g'] *: *0x1};$/);
|
||||
});
|
||||
});
|
||||
|
||||
describe('Variant #10: Integration with `transformObjectKeys` option', () => {
|
||||
it('should correctly transform string when `transformObjectKeys` option is enabled', () => {
|
||||
const code: string = readFileAsString(__dirname + '/fixtures/object-string-literal.js');
|
||||
|
||||
obfuscatedCode = JavaScriptObfuscator.obfuscate(
|
||||
code,
|
||||
{
|
||||
...NO_ADDITIONAL_NODES_PRESET,
|
||||
splitStrings: true,
|
||||
splitStringsChunkLength: 2,
|
||||
transformObjectKeys: true
|
||||
}
|
||||
).getObfuscatedCode();
|
||||
|
||||
assert.match(
|
||||
obfuscatedCode,
|
||||
/^var *test *= *{}; *test\['ab' *\+ *'cd' *\+ *'ef' *\+ *'g'] *= *'ab' *\+ *'cd' *\+ *'ef' *\+ *'g';$/
|
||||
);
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user