-
-
Notifications
You must be signed in to change notification settings - Fork 1.7k
Closed
Description
var JavaScriptObfuscator = require('javascript-obfuscator');
var obfuscationResult = JavaScriptObfuscator.obfuscate(
`
var obj1={
firstname:'John',
lastname:'Smith'
};
var obj2={
age:40,
country:'USA'
}
var user={...obj1, ...obj2}
console.log(user);
`,
{
transformObjectKeys: true,
}
);
console.log(obfuscationResult.getObfuscatedCode());
Expected Behavior
The normal ouput of this program is:
{firstname: "John", lastname: "Smith", age: 40, country: "USA"}
Current Behavior
The current behavior is:
/Users/vincent/dev/packager/node_modules/javascript-obfuscator/dist/webpack:/JavaScriptObfuscator/src/node/NodeGuards.ts:270
return node.type === NodeType.ObjectPattern;
^
TypeError: Cannot read property 'type' of undefined
at Function.type (/Users/vincent/dev/packager/node_modules/javascript-obfuscator/dist/webpack:/JavaScriptObfuscator/src/node/NodeGuards.ts:270:21)
at Function.isObjectPatternNode (/Users/vincent/dev/packager/node_modules/javascript-obfuscator/dist/webpack:/JavaScriptObfuscator/src/node-transformers/converting-transformers/properties-extractors/AbstractPropertiesExtractor.ts:86:27)
at t.isProhibitedPattern (/Users/vincent/dev/packager/node_modules/javascript-obfuscator/dist/webpack:/JavaScriptObfuscator/src/node-transformers/converting-transformers/properties-extractors/AbstractPropertiesExtractor.ts:120:45)
at t.extractPropertiesToExpressionStatements (/Users/vincent/dev/packager/node_modules/javascript-obfuscator/dist/webpack:/JavaScriptObfuscator/src/node-transformers/converting-transformers/properties-extractors/AbstractPropertiesExtractor.ts:187:14)
at transformObjectExpressionNode (/Users/vincent/dev/packager/node_modules/javascript-obfuscator/dist/webpack:/JavaScriptObfuscator/src/node-transformers/converting-transformers/properties-extractors/VariableDeclaratorPropertiesExtractor.ts:42:21)
at t.extract (/Users/vincent/dev/packager/node_modules/javascript-obfuscator/dist/webpack:/JavaScriptObfuscator/src/node-transformers/converting-transformers/ObjectExpressionKeysTransformer.ts:104:36)
at transformNode (/Users/vincent/dev/packager/node_modules/javascript-obfuscator/dist/webpack:/JavaScriptObfuscator/src/node-transformers/converting-transformers/ObjectExpressionKeysTransformer.ts:67:33)
at Controller.visitorFunction (/Users/vincent/dev/packager/node_modules/javascript-obfuscator/dist/webpack:/JavaScriptObfuscator/src/node-transformers/TransformersRunner.ts:111:55)
at Controller.__execute (/Users/vincent/dev/packager/node_modules/estraverse/estraverse.js:397:31)
at Controller.replace (/Users/vincent/dev/packager/node_modules/estraverse/estraverse.js:637:27)
Steps to Reproduce (for bugs)
- create a file with the above code in a npm project
- run the code
- bug occurs
Your Environment
No related to environment, even on https://obfuscator.io/ it happens as well, the website does not obfuscate the code and displays TypeError: Cannot read property 'type' of undefined
Stack trace
See 'Current Behavior' section
Minimal working example that will help to reproduce issue
See code sample at top of bug report
Other notes
array spread operator like [...arr1, ...arr2] does not create this problem, only {...obj1, ...obj2} does.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels