aboutsummaryrefslogtreecommitdiff
path: root/src/interp/i-spec2.boot
diff options
context:
space:
mode:
Diffstat (limited to 'src/interp/i-spec2.boot')
-rw-r--r--src/interp/i-spec2.boot7
1 files changed, 3 insertions, 4 deletions
diff --git a/src/interp/i-spec2.boot b/src/interp/i-spec2.boot
index d874e184..85035890 100644
--- a/src/interp/i-spec2.boot
+++ b/src/interp/i-spec2.boot
@@ -952,11 +952,10 @@ evalREPEAT(op,[:itrl,body],repeatMode) ==
bodyCode := getArgValue(body,bodyMode)
if $iterateCount > 0 then
bodyCode := ["CATCH",$repeatBodyLabel,bodyCode]
- code := ['REPEAT,:[evalLoopIter itr for itr in itrl], bodyCode]
- if repeatMode = $Void then code := ['OR,code,'(voidValue)]
+ code := ["%repeat",:[evalLoopIter itr for itr in itrl], bodyCode]
code := timedOptimization code
if $breakCount > 0 then code := ['CATCH,$repeatLabel,code]
- val:=
+ val :=
$genValue =>
timedEVALFUN code
objNewWrap(voidValue(),repeatMode)
@@ -975,7 +974,7 @@ interpREPEAT(op,itrl,body,repeatMode) ==
$indexTypes: local := NIL
code :=
-- we must insert a CATCH for the iterate clause
- ["REPEAT",:[interpIter itr for itr in itrl],
+ ["%repeat",:[interpIter itr for itr in itrl],
["CATCH",$repeatBodyLabel,interpLoop(body,$indexVars,
$indexTypes,nil)]]
SPADCATCH(eval $repeatLabel,timedEVALFUN code)