From @src/flow.l (Dst: ca (val $Catch)) (Dst: in (val $InFrames)) (Dst: out (val $OutFrames)) (Dst: err (val $ErrFrames)) (Dst: ctl (val $CtlFrames)) (putCrtEnv (Dst:)) (set # Init local env $Next $Nil $Make 0 $Yoke 0 $Current (Dst:) $StkLimit (+ (Dst: lim) 1024) ) (when (symb? Tag) (put Tag ZERO (| (i64 (Dst:)) 2)) ) 'Dst:' is changed (set $Ret (run X)) when 'run' returns (unless (== (hex "0707070707070707") (val (i64* (Dst: lim)))) (stkOverErr (Dst: tag)) ) (set $This (val -3 (Dst: bnd))) (stop (Dst:)) # Stop coroutine (let Org: (coroutine (Dst: org)) (unless (and (Org:) (== (Org: tag) (Dst: otg))) (coErr Exe (Dst: otg)) ) (longjmp (Org: (rst)) 1) ) ) ) ) )