about summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorKartik K. Agaram <vc@akkartik.com>2014-12-03 18:12:44 -0800
committerKartik K. Agaram <vc@akkartik.com>2014-12-03 18:12:44 -0800
commit9ae92a0dbc19c3cbbbf774a1d4f7eb82095a0e2a (patch)
treea6332f8e3307c6e252fd00901c702fa0e433b9bb
parent383a2affe43e580accd1fe739ce88dfa52af24aa (diff)
downloadmu-9ae92a0dbc19c3cbbbf774a1d4f7eb82095a0e2a.tar.gz
392
-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)))))