0.18.6 version

This commit is contained in:
sanex3339
2019-12-01 21:34:50 +03:00
parent 10e69bfd92
commit de8579a8a5
9 changed files with 47 additions and 28 deletions
@@ -17,5 +17,8 @@ export interface IIdentifierNamesGenerator {
*/
isValidIdentifierName (identifierName: string): boolean;
/**
* @param {string} name
*/
preserveName (name: string): void;
}
@@ -17,5 +17,8 @@ export interface IIdentifierObfuscatingReplacer extends IObfuscatingReplacer <ES
*/
storeLocalName (nodeValue: string, lexicalScopeNode: TNodeWithLexicalScope): void;
preserveName (name: any): void;
/**
* @param {string} name
*/
preserveName (name: string): void;
}
@@ -1,13 +1,17 @@
import { inject, injectable, } from 'inversify';
import { ServiceIdentifiers } from '../../container/ServiceIdentifiers';
import * as ESTree from 'estree';
import { TIdentifierObfuscatingReplacerFactory } from '../../types/container/node-transformers/TIdentifierObfuscatingReplacerFactory';
import { IIdentifierObfuscatingReplacer } from '../../interfaces/node-transformers/obfuscating-transformers/obfuscating-replacers/IIdentifierObfuscatingReplacer';
import { IOptions } from '../../interfaces/options/IOptions';
import { IRandomGenerator } from '../../interfaces/utils/IRandomGenerator';
import { IVisitor } from '../../interfaces/node-transformers/IVisitor';
import { IdentifierObfuscatingReplacer } from "../../enums/node-transformers/obfuscating-transformers/obfuscating-replacers/IdentifierObfuscatingReplacer";
import { ServiceIdentifiers } from '../../container/ServiceIdentifiers';
import { TransformationStage } from '../../enums/node-transformers/TransformationStage';
import { AbstractNodeTransformer } from '../AbstractNodeTransformer';
import { NodeGuards } from '../../node/NodeGuards';
@@ -48,13 +52,14 @@ export class VariablePreserveTransformer extends AbstractNodeTransformer {
case TransformationStage.Preparing:
return {
enter: (node: ESTree.Node, parentNode: ESTree.Node | null) => {
if (parentNode &&
NodeGuards.isIdentifierNode(node) &&
(
NodeGuards.parentNodeIsPropertyNode(node, parentNode) ||
NodeGuards.parentNodeIsMemberExpressionNode(node, parentNode) ||
NodeGuards.parentNodeIsMethodDefinitionNode(node, parentNode) ||
NodeGuards.isLabelIdentifierNode(node, parentNode)
if (
NodeGuards.isIdentifierNode(node)
&& parentNode
&& (
NodeGuards.parentNodeIsPropertyNode(node, parentNode)
|| NodeGuards.parentNodeIsMemberExpressionNode(node, parentNode)
|| NodeGuards.parentNodeIsMethodDefinitionNode(node, parentNode)
|| NodeGuards.isLabelIdentifierNode(node, parentNode)
)
) {
return this.transformNode(node, parentNode);
+13 -13
View File
@@ -300,9 +300,9 @@ export class NodeGuards {
* @returns {boolean}
*/
public static parentNodeIsPropertyNode (node: ESTree.Node, parentNode: ESTree.Node): node is ESTree.Identifier {
return NodeGuards.isPropertyNode(parentNode) &&
!parentNode.computed &&
parentNode.key === node;
return NodeGuards.isPropertyNode(parentNode)
&& !parentNode.computed
&& parentNode.key === node;
}
/**
@@ -312,9 +312,9 @@ export class NodeGuards {
*/
public static parentNodeIsMemberExpressionNode (node: ESTree.Node, parentNode: ESTree.Node): node is ESTree.Identifier {
return (
NodeGuards.isMemberExpressionNode(parentNode) &&
!parentNode.computed &&
parentNode.property === node
NodeGuards.isMemberExpressionNode(parentNode)
&& !parentNode.computed
&& parentNode.property === node
);
}
@@ -324,8 +324,8 @@ export class NodeGuards {
* @returns {boolean}
*/
public static parentNodeIsMethodDefinitionNode (node: ESTree.Node, parentNode: ESTree.Node): node is ESTree.Identifier {
return NodeGuards.isMethodDefinitionNode(parentNode) &&
!parentNode.computed;
return NodeGuards.isMethodDefinitionNode(parentNode)
&& !parentNode.computed;
}
/**
@@ -334,11 +334,11 @@ export class NodeGuards {
* @returns {boolean}
*/
public static isReplaceableIdentifierNode (node: ESTree.Node, parentNode: ESTree.Node): node is ESTree.Identifier {
return NodeGuards.isIdentifierNode(node) &&
!NodeGuards.parentNodeIsPropertyNode(node, parentNode) &&
!NodeGuards.parentNodeIsMemberExpressionNode(node, parentNode) &&
!NodeGuards.parentNodeIsMethodDefinitionNode(node, parentNode) &&
!NodeGuards.isLabelIdentifierNode(node, parentNode);
return NodeGuards.isIdentifierNode(node)
&& !NodeGuards.parentNodeIsPropertyNode(node, parentNode)
&& !NodeGuards.parentNodeIsMemberExpressionNode(node, parentNode)
&& !NodeGuards.parentNodeIsMethodDefinitionNode(node, parentNode)
&& !NodeGuards.isLabelIdentifierNode(node, parentNode);
}
/**