Few optimisations

This commit is contained in:
sanex3339
2018-01-13 17:54:33 +03:00
parent 07a26e21d0
commit 255dd1476b
4 changed files with 19 additions and 7 deletions
+1 -1
View File
File diff suppressed because one or more lines are too long
+6 -2
View File
@@ -63,14 +63,18 @@ export class TransformersRunner implements ITransformersRunner {
}
if (visitor.enter) {
enterVisitors.push(visitor);
enterVisitors.push({ enter: visitor.enter });
}
if (visitor.leave) {
leaveVisitors.push(visitor);
leaveVisitors.push({ leave: visitor.leave });
}
}
if (!enterVisitors.length && !leaveVisitors.length) {
return astTree;
}
estraverse.replace(astTree, {
enter: this.mergeVisitorsForDirection(enterVisitors, VisitorDirection.Enter),
leave: this.mergeVisitorsForDirection(leaveVisitors, VisitorDirection.Leave)
@@ -39,9 +39,9 @@ export class DeadCodeInjectionTransformer extends AbstractNodeTransformer {
private static readonly minCollectedBlockStatementsCount: number = 5;
/**
* @type {WeakSet <BlockStatement>}
* @type {Set <BlockStatement>}
*/
private readonly deadCodeInjectionRootAstHostNodeSet: WeakSet <ESTree.BlockStatement> = new WeakSet();
private readonly deadCodeInjectionRootAstHostNodeSet: Set <ESTree.BlockStatement> = new Set();
/**
* @type {ESTree.BlockStatement[]}
@@ -135,6 +135,10 @@ export class DeadCodeInjectionTransformer extends AbstractNodeTransformer {
};
case TransformationStage.Finalizing:
if (!this.deadCodeInjectionRootAstHostNodeSet.size) {
return null;
}
return {
enter: (node: ESTree.Node, parentNode: ESTree.Node | null) => {
if (parentNode && this.isDeadCodeInjectionRootAstHostNode(node)) {
@@ -20,9 +20,9 @@ import { NodeUtils } from '../../node/NodeUtils';
@injectable()
export class EvalCallExpressionTransformer extends AbstractNodeTransformer {
/**
* @type {WeakSet <FunctionExpression>}
* @type {Set <FunctionExpression>}
*/
private readonly evalRootAstHostNodeSet: WeakSet <ESTree.FunctionExpression> = new WeakSet();
private readonly evalRootAstHostNodeSet: Set <ESTree.FunctionExpression> = new Set();
/**
* @param {IRandomGenerator} randomGenerator
@@ -97,6 +97,10 @@ export class EvalCallExpressionTransformer extends AbstractNodeTransformer {
};
case TransformationStage.Finalizing:
if (!this.evalRootAstHostNodeSet.size) {
return null;
}
return {
leave: (node: ESTree.Node, parentNode: ESTree.Node | null) => {
if (parentNode && this.isEvalRootAstHostNode(node)) {