mirror of
https://github.com/javascript-obfuscator/javascript-obfuscator
synced 2026-08-09 12:42:29 +00:00
Optimize performance #2
This commit is contained in:
@@ -127,21 +127,9 @@ export class DirectivePlacementTransformer extends AbstractNodeTransformer {
|
||||
// append new directive node at the top of lexical scope statements
|
||||
NodeAppender.prepend(nodeWithLexicalScopeStatements, [newDirectiveNode]);
|
||||
|
||||
// remove found directive node
|
||||
let isDirectiveNodeRemoved: boolean = false;
|
||||
estraverse.replace(nodeWithLexicalScopeStatements, {
|
||||
enter: (node: ESTree.Node): estraverse.VisitorOption | undefined => {
|
||||
if (isDirectiveNodeRemoved) {
|
||||
return estraverse.VisitorOption.Break;
|
||||
}
|
||||
|
||||
if (node === directiveNode) {
|
||||
isDirectiveNodeRemoved = true;
|
||||
|
||||
return estraverse.VisitorOption.Remove;
|
||||
}
|
||||
}
|
||||
});
|
||||
nodeWithLexicalScopeStatements.body = nodeWithLexicalScopeStatements.body.filter(
|
||||
(node) => node !== directiveNode
|
||||
);
|
||||
}
|
||||
|
||||
return nodeWithLexicalScopeStatements;
|
||||
|
||||
@@ -19,6 +19,11 @@ export class EscapeSequenceEncoder implements IEscapeSequenceEncoder {
|
||||
*/
|
||||
private static readonly forceEscapeCharactersRegExp: RegExp = /[\x00-\x1F\x7F-\x9F'"\\\s]/;
|
||||
|
||||
/**
|
||||
* @type {RegExp}
|
||||
*/
|
||||
private static readonly replaceRegExp: RegExp = /[\s\S]/g;
|
||||
|
||||
/**
|
||||
* @type {Map<string, string>}
|
||||
*/
|
||||
@@ -37,12 +42,11 @@ export class EscapeSequenceEncoder implements IEscapeSequenceEncoder {
|
||||
}
|
||||
|
||||
const radix: number = 16;
|
||||
const replaceRegExp: RegExp = new RegExp('[\\s\\S]', 'g');
|
||||
|
||||
let prefix: string;
|
||||
let template: string;
|
||||
|
||||
const result: string = string.replace(replaceRegExp, (character: string): string => {
|
||||
const result: string = string.replace(EscapeSequenceEncoder.replaceRegExp, (character: string): string => {
|
||||
const shouldEncodeCharacter: boolean =
|
||||
encodeAllSymbols || EscapeSequenceEncoder.forceEscapeCharactersRegExp.test(character);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user