Merge remote-tracking branch 'origin/stable-2.0'
[bpt/guile.git] / module / language / scheme / decompile-tree-il.scm
index 74778b4..99edee4 100644 (file)
          `(call-with-values (lambda () ,@(recurse-body exp))
             ,(recurse (make-lambda #f '() body))))
 
-        ((<prompt> tag body handler)
+        ((<prompt> escape-only? tag body handler)
          `(call-with-prompt
            ,(recurse tag)
-           ,(recurse body)
+           ,(if escape-only?
+                `(lambda () ,(recurse body))
+                (recurse body))
            ,(recurse handler)))
 
 
              (primitive 'begin) (recurse head) (recurse tail))
 
             ((<lambda> body)
-             (if body (recurse body)))
+             (if body (recurse body) (primitive 'case-lambda)))
 
             ((<lambda-case> req opt rest kw inits gensyms body alternate)
              (primitive 'lambda)