FunctionObfuscator tests

This commit is contained in:
sanex3339
2016-07-07 12:41:27 +03:00
parent a18e8826b3
commit affe04032e
3 changed files with 122 additions and 14 deletions
+31 -4
View File
@@ -1,8 +1,10 @@
import * as escodegen from 'escodegen';
import { TExpression } from "../../src/types/nodes/TExpression";
import { TStatement } from "../../src/types/nodes/TStatement";
import { IBlockStatementNode } from "../../src/interfaces/nodes/IBlockStatementNode";
import { ICallExpressionNode } from "../../src/interfaces/nodes/ICallExpressionNode";
import { ICatchClauseNode } from "../../src/interfaces/nodes/ICatchClauseNode";
import { IExpressionStatementNode } from "../../src/interfaces/nodes/IExpressionStatementNode";
import { IFunctionDeclarationNode } from "../../src/interfaces/nodes/IFunctionDeclarationNode";
@@ -10,6 +12,7 @@ import { IIdentifierNode } from "../../src/interfaces/nodes/IIdentifierNode";
import { IIfStatementNode } from "../../src/interfaces/nodes/IIfStatementNode";
import { ILiteralNode } from "../../src/interfaces/nodes/ILiteralNode";
import { IProgramNode } from "../../src/interfaces/nodes/IProgramNode";
import { ISpreadElementNode } from "../../src/interfaces/nodes/ISpreadElementNode";
import { NodeType } from "../../src/enums/NodeType";
@@ -49,25 +52,49 @@ export class NodeMocks {
}
/**
* @param callee
* @param args
* @returns {ICallExpressionNode}
*/
public static getCallExpressionNode (
callee: TExpression,
args: TExpression[] | ISpreadElementNode[] = []
): ICallExpressionNode {
return {
type: NodeType.CallExpression,
callee: callee,
arguments: args
};
}
/**
* @param expression
* @returns {IExpressionStatementNode}
*/
public static getExpressionStatementNode (): IExpressionStatementNode {
public static getExpressionStatementNode (
expression: TExpression = NodeMocks.getIdentifierNode()
): IExpressionStatementNode {
return {
type: NodeType.ExpressionStatement,
expression: NodeMocks.getIdentifierNode()
expression: expression
};
}
/**
* @param functionName
* @param blockStatementNode
* @param params
* @returns {IFunctionDeclarationNode}
*/
public static getFunctionDeclarationNode (functionName: string, blockStatementNode: IBlockStatementNode): IFunctionDeclarationNode {
public static getFunctionDeclarationNode (
functionName: string,
blockStatementNode: IBlockStatementNode,
params: IIdentifierNode[] = []
): IFunctionDeclarationNode {
return {
type: NodeType.FunctionDeclaration,
id: NodeMocks.getIdentifierNode(functionName),
params: [],
params: params,
body: blockStatementNode,
generator: false,
expression: false