diff options
Diffstat (limited to 'src/interp/i-spec2.boot')
-rw-r--r-- | src/interp/i-spec2.boot | 7 |
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) |