Moved isValidLexicalScopeNode method to the NodeGuards as isNodeWithLexicalScopeAndStatements

This commit is contained in:
sanex
2020-09-12 17:33:38 +03:00
parent f71f57c006
commit 47104dda93
7 changed files with 146 additions and 31 deletions
@@ -123,31 +123,6 @@ export class StringArrayTransformer extends AbstractNodeTransformer {
this.stringArrayTransformerCustomNodeFactory = stringArrayTransformerCustomNodeFactory;
}
/**
* @param {Node} node
* @returns {boolean}
*/
private static isValidLexicalScopeNode (node: ESTree.Node): node is TNodeWithLexicalScopeAndStatements {
if (!NodeGuards.isNodeWithLexicalScope(node)) {
return false;
}
const lexicalScopeBodyNode: ESTree.Program | ESTree.BlockStatement | ESTree.Expression =
NodeGuards.isProgramNode(node)
? node
: node.body;
// invalid lexical scope node
if (
!lexicalScopeBodyNode.parentNode
|| !NodeGuards.isNodeWithLexicalScopeStatements(lexicalScopeBodyNode, lexicalScopeBodyNode.parentNode)
) {
return false;
}
return true;
}
/**
* @param {NodeTransformationStage} nodeTransformationStage
* @returns {IVisitor | null}
@@ -161,7 +136,7 @@ export class StringArrayTransformer extends AbstractNodeTransformer {
this.prepareNode(node);
}
if (StringArrayTransformer.isValidLexicalScopeNode(node)) {
if (NodeGuards.isNodeWithLexicalScopeAndStatements(node)) {
this.onLexicalScopeNodeEnter(node);
}
@@ -170,7 +145,7 @@ export class StringArrayTransformer extends AbstractNodeTransformer {
}
},
leave: (node: ESTree.Node): ESTree.Node | undefined => {
if (StringArrayTransformer.isValidLexicalScopeNode(node)) {
if (NodeGuards.isNodeWithLexicalScopeAndStatements(node)) {
this.onLexicalScopeNodeLeave();
return this.transformLexicalScopeNode(node);