mirror of
https://github.com/javascript-obfuscator/javascript-obfuscator
synced 2026-08-09 12:42:29 +00:00
0.18.6 version
This commit is contained in:
+3
@@ -17,5 +17,8 @@ export interface IIdentifierNamesGenerator {
|
||||
*/
|
||||
isValidIdentifierName (identifierName: string): boolean;
|
||||
|
||||
/**
|
||||
* @param {string} name
|
||||
*/
|
||||
preserveName (name: string): void;
|
||||
}
|
||||
|
||||
+4
-1
@@ -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
@@ -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);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user