Optimize performance #2

This commit is contained in:
sanex3339
2025-12-16 21:52:34 +04:00
parent f7588409fc
commit e95d837a2f
2 changed files with 9 additions and 17 deletions
@@ -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;
+6 -2
View File
@@ -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);