def node_del_stmt(self, node):
        # del a
        # del a.b
        # del a.b[1]
        # del a, b
        # del a[:]
        # a = [0,1,2,3,4,5,6,7,8,9] ; del a[1:8:2]
        # Node(del_stmt, [Leaf(1, 'del'), Leaf(1, 'a')])
        # Node(del_stmt, [Leaf(1, 'del'), Node(power, [Leaf(1, 'a'), Node(trailer, [Leaf(23, '.'), Leaf(1, 'b')])])])
        # Node(del_stmt, [Leaf(1, 'del'), Node(power, [Leaf(1, 'a'), Node(trailer, [Leaf(23, '.'), Leaf(1, 'b')]), Node(trailer, [Leaf(9, '['), Leaf(2, '1'), Leaf(10, ']')])])])
        jsvars = self.jsvars.copy()
        lineno = self.track_lineno(node)
        childs = node.children.__iter__()
        self.assert_value(node, childs.next().value, 'del')
        child = childs.next()
        if isinstance(child, Node) and \
           type_repr(child.type) == 'exprlist':
            childs = child.children.__iter__()
            child = childs.next()
        try:
            while True:
                if isinstance(child, Leaf):
                    name = self.get_jsname(child.value)
                    self.add_lines(name % "delete %s;", lineno)
                elif type_repr(child.type) == 'power':
                    jsvars = self.jsvars.copy()
                    tail = child.children.pop()
                    if len(child.children) > 1:
                        base = self.dispatch(child)
                    else:
                        base = self.dispatch(child.children[0])
                    if type_repr(tail.type) == 'trailer':
                        what = tail.children[1]
                        if tail.children[0].value == '.':
                            # delattr
                            op = 'delattr'
                            if isinstance(what, Leaf):
                                what = repr(what.value)
                            else:
                                what = self.dispatch(what)
                        elif tail.children[0].value == '[':
                            op, what = self.get_op_item(
                                what, 'delitem', 'delslice',
                            )
                        else:
                            self.not_implemented(node)
                        jsvars.update(locals())
                        self.add_lines("""\
%(builtin)s['%(op)s'](%(base)s, %(what)s)\
""" % jsvars)
                        return
                else:
                    self.not_implemented(node)
                self.assert_value(node, childs.next().value, ',')
                child = childs.next()
        except StopIteration:
            pass
dataset/ETHPy150Open anandology/pyjamas/pyjs/src/pyjs/translator_dict.py/Translator.node_del_stmt/swapped operands of `%`