@@ -2524,10 +2524,9 @@ object* sp_loop (object* args, object* env) {
2524
2524
(return [value])
2525
2525
Exits from a (dotimes ...), (dolist ...), or (loop ...) loop construct and returns value.
2526
2526
*/
2527
- object* sp_return (object* args, object* env) {
2528
- object* result = progn_no_tc (args, env);
2527
+ object* fn_return (object* args, object* env) {
2529
2528
setflag (RETURNFLAG);
2530
- return result ;
2529
+ return args ? first (args) : nil ;
2531
2530
}
2532
2531
2533
2532
/*
@@ -6955,7 +6954,7 @@ const tbl_entry_t BuiltinTable[] = {
6955
6954
{ string28, sp_or, MINMAX (SPECIAL_FORMS, 0 , UNLIMITED), doc28 },
6956
6955
{ string29, sp_setq, MINMAX (SPECIAL_FORMS, 2 , UNLIMITED), doc29 },
6957
6956
{ string30, sp_loop, MINMAX (SPECIAL_FORMS, 0 , UNLIMITED), doc30 },
6958
- { string31, sp_return , MINMAX (SPECIAL_FORMS , 0 , UNLIMITED ), doc31 },
6957
+ { string31, fn_return , MINMAX (FUNCTIONS , 0 , 1 ), doc31 },
6959
6958
{ string32, sp_push, MINMAX (SPECIAL_FORMS, 2 , 2 ), doc32 },
6960
6959
{ string33, sp_pop, MINMAX (SPECIAL_FORMS, 1 , 1 ), doc33 },
6961
6960
{ string34, sp_incf, MINMAX (SPECIAL_FORMS, 1 , 2 ), doc34 },
0 commit comments