当前位置: 首页>>代码示例>>Python>>正文


Python Frame.push_undefined方法代码示例

本文整理汇总了Python中frame.Frame.push_undefined方法的典型用法代码示例。如果您正苦于以下问题:Python Frame.push_undefined方法的具体用法?Python Frame.push_undefined怎么用?Python Frame.push_undefined使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在frame.Frame的用法示例。


在下文中一共展示了Frame.push_undefined方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: __init__

# 需要导入模块: from frame import Frame [as 别名]
# 或者: from frame.Frame import push_undefined [as 别名]

#.........这里部分代码省略.........
                raise NotImplementedError('op not')
        elif lhs.is_object():
            self.frame.pop()
            self.frame.push_bool(False)
        else:
            reg = lhs.to_reg()
            if lhs.is_bool():
                self.assembler.xor(reg, 1)
            elif lhs.is_int():
                self.assembler.cmp(reg, 0)
                self.assembler.xor(reg, reg)
                self.assembler.jne(end)
                self.assembler.mov(reg, 1)
                self.assembler.add_(end)
            else:
                raise NotImplementedError('op not')

            self.frame.pop()
            self.frame.take_reg(reg)
            self.frame.push('bool', reg)

    def op_void(self, node):
        self.compile_node(node[0])
        lhs = self.frame.peek(-1)

        @function(None, Value)
        def log(v):
            print 'void stub (logging)'
            v.dump()

        self.call(log, lhs)

        self.frame.pop()
        self.frame.push_undefined()

    def op_plus(self, node):
        self.binary(node, 'add')
    def op_minus(self, node):
        self.binary(node, 'sub')

    def binary(self, node, op):
        self.compile_node(node[0])
        self.compile_node(node[1])

        rhs = self.frame.peek(-1)
        lhs = self.frame.peek(-2)

        if lhs.is_constant() and rhs.is_constant():
            value = getattr(self.rt, op)(lhs.to_boxed_int(), rhs.to_boxed_int())

            self.frame.pop()
            self.frame.pop()
            self.frame.push_boxed_int(value)
        elif lhs.is_int() and rhs.is_int():
            reg1 = rhs.to_reg()
            reg2 = lhs.to_reg()

            getattr(self.assembler, op)(reg1, reg2)

            self.frame.pop()
            self.frame.pop()
            self.frame.push('int', reg1)
        else:

            @function(c_int, Value, Value)
            def add_stub(lhs, rhs):
开发者ID:evilpie,项目名称:python-js-jit,代码行数:70,代码来源:compiler.py


注:本文中的frame.Frame.push_undefined方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。