aboutsummaryrefslogtreecommitdiff
path: root/src/boot/strap
diff options
context:
space:
mode:
Diffstat (limited to 'src/boot/strap')
-rw-r--r--src/boot/strap/ast.clisp1
-rw-r--r--src/boot/strap/parser.clisp2
2 files changed, 2 insertions, 1 deletions
diff --git a/src/boot/strap/ast.clisp b/src/boot/strap/ast.clisp
index a754c468..a899f5ed 100644
--- a/src/boot/strap/ast.clisp
+++ b/src/boot/strap/ast.clisp
@@ -1596,6 +1596,7 @@
((MEMQ (CADR |l|) |$fluidVars|) |$fluidVars|)
(T (CONS (CADR |l|) |$fluidVars|))))
(RPLACA (CDR |x|) (CADR |l|)))))
+ ((EQ U '|%Leave|) (RPLACA |x| 'RETURN))
((MEMQ U '(PROG LAMBDA)) (SETQ |newbindings| NIL)
(LET ((|bfVar#110| (CADR |x|)) (|y| NIL))
(LOOP
diff --git a/src/boot/strap/parser.clisp b/src/boot/strap/parser.clisp
index 55781f24..89d4bfa6 100644
--- a/src/boot/strap/parser.clisp
+++ b/src/boot/strap/parser.clisp
@@ -771,7 +771,7 @@
(DEFUN |bpReturn| ()
(OR (AND (|bpEqKey| 'RETURN) (OR (|bpAssign|) (|bpTrap|))
(|bpPush| (|bfReturnNoName| (|bpPop1|))))
- (|bpThrow|) (|bpAnd|)))
+ (|bpLeave|) (|bpThrow|) (|bpAnd|)))
(DEFUN |bpLogical| () (|bpLeftAssoc| '(OR) #'|bpReturn|))