about summary refs log tree commit diff stats
path: root/mu.arc
diff options
context:
space:
mode:
Diffstat (limited to 'mu.arc')
-rw-r--r--mu.arc18
1 files changed, 11 insertions, 7 deletions
diff --git a/mu.arc b/mu.arc
index 5deb83aa..c59a1010 100644
--- a/mu.arc
+++ b/mu.arc
@@ -918,13 +918,17 @@
                 (enq qinstr deferred))))))
     (accum yield
       (each instr instrs
-        (when (and acons.instr
-                   (is instr.0 'reply))
-          (each instr (as cons deferred)
-            (yield instr)))
-        (unless (and acons.instr
-                     (in instr.0 'defer))  ; keep sync'd with case clauses above
-          (yield instr)))
+        (if atom.instr  ; label
+              (yield instr)
+            (is instr.0 'defer)
+              nil  ; skip
+            (is instr.0 'reply)
+              (do
+                (each instr (as cons deferred)
+                  (yield instr))
+                (yield instr))
+            :else
+              (yield instr)))
       (each instr (as cons deferred)
         (yield instr)))))