def node_expr_stmt(self, node):
        jsvars = self.jsvars.copy()
        lineno = self.track_lineno(node)
        if node.children[1].value == '=':
            return self._assign(node, node.children[0], node.children[2:])
        elif node.children[1].value[-1] == '=' and \
             node.children[1].value in self.op_names2:
            jsvars = self.jsvars.copy()
            op_node = node.children[1]
            op = self.op_names2.get(op_node.value, None)
            if op is None:
                self.not_implemented(node)
            right = self.dispatch(node.children[2])
            left = node.children[0]
            get_left = self.dispatch(left)
            jsvars.update(locals())
            # lhs = op_X(lhs, rhs)
            # Node(simple_stmt, [Node(expr_stmt, [Leaf(1, 'b'), Leaf(22, '='), Leaf(2, '1')]), Leaf(4, '\n')])
            if ['&', '|', '^', '>>', '<<'] in op_node.value[:-1]:
                stmt = "%(builtin)s['%(op)s2'](%(get_left)s, %(right)s)" % jsvars
            else:
                stmt = "%(builtin)s['%(op)s'](%(get_left)s, %(right)s, true)" % jsvars
            if isinstance(left, Leaf):
                set_left = left.value
            else:
                set_left = self.dispatch(left, stmt)
                return set_left
            stmt = self.create_assign_stmt(
                subst_lhs=set_left,
                subst_rhs=Code(stmt, lineno),
            ).children[0]
            stmt = self.dispatch(stmt)
            return stmt
        self.not_implemented(node)
dataset/ETHPy150Open anandology/pyjamas/pyjs/src/pyjs/translator_dict.py/Translator.node_expr_stmt/swapped operands of `in`