Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
} else if(optStr == '!=') {
optStr = '~=';
} else if(optStr == '===') {
optStr = '==';
} else if(optStr == '!==') {
optStr = '~=';
}
if(optStr == 'instanceof') {
return left + ':instanceof(' + right + ')';
}
let str = '';
let astType = (ast as any).type;
if(astType == AST_NODE_TYPES.AssignmentExpression) {
if(ast.right.type == AST_NODE_TYPES.AssignmentExpression) {
// 处理 a = b = c
str = right + '\n';
right = this.codeFromAST((ast.right as AssignmentExpression).left);
} else if(ast.right.type == AST_NODE_TYPES.UpdateExpression && (ast.right as UpdateExpression).prefix) {
// 处理 a = ++b
str = right + '\n';
right = this.codeFromAST((ast.right as UpdateExpression).argument);
}
}
if(isSelfOperator) {
return str + left + ' = ' + left + ' ' + optStr + ' ' + right;
}
return str + left + ' ' + optStr + ' ' + right;
}
let str = '';
switch (ast.type) {
case AST_NODE_TYPES.ArrayExpression:
str += this.codeFromArrayExpression(ast);
break;
case AST_NODE_TYPES.ArrayPattern:
str += this.codeFromArrayPattern(ast);
break;
case AST_NODE_TYPES.ArrowFunctionExpression:
str += this.codeFromArrowFunctionExpression(ast);
break;
case AST_NODE_TYPES.AssignmentExpression:
str += this.codeFromAssignmentExpression(ast);
break;
case AST_NODE_TYPES.AssignmentPattern:
str += this.codeFromAssignmentPattern(ast);
break;
case AST_NODE_TYPES.AwaitExpression:
str += this.codeFromAwaitExpression(ast);
break;
case AST_NODE_TYPES.BigIntLiteral:
str += this.codeFromBigIntLiteral(ast);
break;
case AST_NODE_TYPES.BinaryExpression: