mirror of
https://github.com/javascript-obfuscator/javascript-obfuscator
synced 2026-08-09 12:42:29 +00:00
This commit is contained in:
+2
-27
@@ -1,7 +1,7 @@
|
||||
import * as ESTree from 'estree';
|
||||
|
||||
import { TNodeWithLexicalScope } from '../types/node/TNodeWithLexicalScope';
|
||||
import { TNodeWithLexicalScopeAndStatements } from '../types/node/TNodeWithLexicalScopeAndStatements';
|
||||
import { TNodeWithLexicalScopeStatements } from '../types/node/TNodeWithLexicalScopeStatements';
|
||||
import { TNodeWithStatements } from '../types/node/TNodeWithStatements';
|
||||
|
||||
import { NodeType } from '../enums/node/NodeType';
|
||||
@@ -271,31 +271,6 @@ export class NodeGuards {
|
||||
return NodeGuards.isNodeWithLexicalScope(node) || NodeGuards.isBlockStatementNode(node);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param {Node} node
|
||||
* @returns {node is TNodeWithLexicalScopeAndStatements}
|
||||
*/
|
||||
public static isNodeWithLexicalScopeAndStatements (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 {Node} node
|
||||
* @param {Node} parentNode
|
||||
@@ -304,7 +279,7 @@ export class NodeGuards {
|
||||
public static isNodeWithLexicalScopeStatements (
|
||||
node: ESTree.Node,
|
||||
parentNode: ESTree.Node
|
||||
): node is TNodeWithStatements {
|
||||
): node is TNodeWithLexicalScopeStatements {
|
||||
return NodeGuards.isProgramNode(node)
|
||||
|| (NodeGuards.isBlockStatementNode(node) && NodeGuards.nodesWithLexicalStatements.includes(parentNode.type));
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user