Ejemplo n.º 1
0
Archivo: rt.py Proyecto: halgari/cljvm
 def invoke6(self, globals, frame, ctc, cond, then, el):
     from system.evaluation import eval_item, w_false
     res = eval_item.invoke4(cond, globals, frame, w_false)
     if res is not w_false and res is not None:
         return eval_item.invoke4(then, globals, frame, ctc)
     else:
         return eval_item.invoke4(el, globals, frame, ctc)
Ejemplo n.º 2
0
Archivo: rt.py Proyecto: halgari/cljvm
    def invoke_args(self, args_w):
        assert len(self._w_args) - 1 == len(args_w)
        from system.evaluation import ResolveFrame, eval_item, TailCallTrampoline
        from system.bool import w_true
        from system.evaluation import jitdriver
        args_w = [self] + args_w
        frame = ResolveFrame(self._w_args, args_w)

        jitdriver.jit_merge_point(frame = frame,
                                  globals = self._w_globals,
                                  func = self)

        ret = eval_item.invoke4(self._w_body, self._w_globals, frame, w_true)
        return ret