mirror of
https://github.com/javascript-obfuscator/javascript-obfuscator
synced 2026-08-09 12:42:29 +00:00
control flow flattening improvements: less storage nodes, faster speed
This commit is contained in:
+19
-3
@@ -50,6 +50,22 @@ export class NodeUtils {
|
||||
return <TStatement[]>structure.body;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param structure
|
||||
* @returns {string}
|
||||
*/
|
||||
public static convertStructureToCode (structure: ESTree.Node[]): string {
|
||||
let code: string = '';
|
||||
|
||||
for (let node of structure) {
|
||||
code += escodegen.generate(node, {
|
||||
sourceMapWithCode: true
|
||||
}).code;
|
||||
}
|
||||
|
||||
return code;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param node
|
||||
* @param index
|
||||
@@ -97,7 +113,7 @@ export class NodeUtils {
|
||||
return parentNode;
|
||||
}
|
||||
|
||||
return NodeUtils.getBlockScopeOfNode(parentNode);
|
||||
return NodeUtils.getBlockScopeOfNode(parentNode, depth);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -180,12 +196,12 @@ export class NodeUtils {
|
||||
(<any>estraverse)[traverseType](node, {
|
||||
enter: (node: ESTree.Node, parentNode: ESTree.Node): any => {
|
||||
if (node.type === nodeType && visitor.enter) {
|
||||
visitor.enter(node, parentNode);
|
||||
return visitor.enter(node, parentNode);
|
||||
}
|
||||
},
|
||||
leave: (node: ESTree.Node, parentNode: ESTree.Node): any => {
|
||||
if (node.type === nodeType && visitor.leave) {
|
||||
visitor.leave(node, parentNode);
|
||||
return visitor.leave(node, parentNode);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user