aboutsummaryrefslogtreecommitdiff
path: root/src/interp/compiler.boot
diff options
context:
space:
mode:
Diffstat (limited to 'src/interp/compiler.boot')
-rw-r--r--src/interp/compiler.boot7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/interp/compiler.boot b/src/interp/compiler.boot
index c4bee569..16222b24 100644
--- a/src/interp/compiler.boot
+++ b/src/interp/compiler.boot
@@ -1036,8 +1036,11 @@ replaceExitEtc(x,tag,opFlag,opMode) ==
--bound in compSeq1 and compDefineCapsuleFunction
$finalEnv => intersectionEnvironment($finalEnv,t.env)
t.env
- x.op := "THROW"
- first(x.args) := tag
+ if opFlag = 'TAGGEDreturn then
+ x.op := '%return
+ else
+ x.op := "THROW"
+ first(x.args) := tag
second(x.args) := convertOrCroak(t,opMode).expr
first(x.args) := second x-1
x is [key,n,t] and key in '(TAGGEDreturn TAGGEDexit) =>