def UnaryExpression(traverser, node):
    operator = node["operator"]
    arg = traverser.traverse_node(node["argument"])
    if (isinstance(arg, JSGlobal) and
        "literal" in arg.global_data and
        not (operator == "typeof" and "undefined" in arg.global_data)):
        arg = JSLiteral(
            utils.evaluate_lambdas(traverser, arg.global_data["literal"]),
            traverser=traverser)
    if operator in UNARY_OPERATORS:
        traverser._debug(operator % "Defined unary operator (%s)")
        return JSLiteral(UNARY_OPERATORS[node["operator"]](arg, traverser),
                         traverser=traverser)
    elif operator == "void":
        traverser._debug("Void unary operator")
        from predefinedentities import resolve_entity
        return JSGlobal(resolve_entity(traverser, "undefined"),
                        traverser=traverser)
    elif operator == "typeof":
        traverser._debug("Typeof unary operator")
        return JSLiteral(_expr_unary_typeof(arg))
    else:
        traverser._debug("Undefined unary operator")
        return JSObject(traverser=traverser)
dataset/ETHPy150Open mozilla/app-validator/appvalidator/testcases/javascript/nodedefinitions.py/UnaryExpression/swapped operands of `%`