aboutsummaryrefslogtreecommitdiff
path: root/src/interp/g-util.boot
diff options
context:
space:
mode:
Diffstat (limited to 'src/interp/g-util.boot')
-rw-r--r--src/interp/g-util.boot4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/interp/g-util.boot b/src/interp/g-util.boot
index 957d676a..0d786928 100644
--- a/src/interp/g-util.boot
+++ b/src/interp/g-util.boot
@@ -212,6 +212,9 @@ expandCollect ["%collect",:iters,body] ==
expandRepeat ["%repeat",:iters,body] ==
expandLoop(iters,body,["voidValue"])
+expandReturn(x is ['%return,.,y]) ==
+ $FUNNAME = nil => systemErrorHere ['expandReturn,x]
+ ['RETURN_-FROM,$FUNNAME,expandToVMForm y]
-- Logical operators
@@ -330,6 +333,7 @@ for x in [
for x in [
["%collect",:function expandCollect],
["%repeat",:function expandRepeat],
+ ['%return, :function expandReturn],
["%eq",:function expandEq],