def NewExpression(traverser, node):
    args = [traverser.traverse_node(arg) for arg in node["arguments"]]
    elem = traverser.traverse_node(node["callee"])
    if not isinstance(elem, JSGlobal):
        return elem

    traverser._debug("Making overwritable")
    global_data = dict(elem.global_data)
    global_data.update(overwritable=True, readonly=False)
    temp = JSGlobal(global_data, traverser=traverser)
    temp.data = deepcopy(elem.data) if elem.data else {}
    if temp.global_data in "new":
        new_temp = temp.global_data["new"](node, args, traverser)
        if new_temp is not None:
            # typeof new Boolean() === "object"
            traverser._debug("Stripping global typeof")
            new_temp.TYPEOF = "object"
            return new_temp
    elif "return" in temp.global_data:
        new_temp = temp.global_data["return"](
            wrapper=node, arguments=args, traverser=traverser)
        if new_temp is not None:
            return new_temp
    return temp
dataset/ETHPy150Open mozilla/app-validator/appvalidator/testcases/javascript/nodedefinitions.py/NewExpression/swapped operands of `in`