Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
export function UnaryExpression(node) {
switch (node.operator) {
case 'void':
return t.binaryExpression('and', this.transform(node.argument), t.nilLiteral());
case 'delete':
return t.assignmentStatement([this.transform(node.argument)], [t.nilLiteral()]);
case '!':
return t.unaryExpression('not', this.transform(node.argument));
case '+':
return t.callExpression(t.identifier('tonumber'), [this.transform(node.argument)]);
case '-':
case '~':
return t.unaryExpression(node.operator, this.transform(node.argument));
default:
// FIXME: Use path.buildCodeFrameError
throw new Error(`${node.operator} is unsupported unary operator`);
}
}
export function NullLiteral() {
return t.nilLiteral();
}
export function Identifier(node) {
if (node.name === 'undefined') return t.nilLiteral();
return t.identifier(node.name);
}