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)
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