@@ -731,6 +731,10 @@ Rebol [
731
731
732
732
733
733
===start-group=== "CATCH"
734
+ ;@@ https://github.com/Oldes/Rebol-issues/issues/1518
735
+ ;@@ https://github.com/Oldes/Rebol-issues/issues/1520
736
+ ;@@ https://github.com/Oldes/Rebol-issues/issues/1734
737
+ ;@@ https://github.com/Oldes/Rebol-issues/issues/1742
734
738
--test-- "catch/quit [halt]"
735
739
;@@ https://github.com/Oldes/Rebol-issues/issues/1742
736
740
a: 0 catch /quit [++ a halt ++ a]
@@ -740,11 +744,39 @@ Rebol [
740
744
;@@ https://github.com/Oldes/Rebol-issues/issues/1734
741
745
a: 0
742
746
--assert unset? catch /quit [++ a quit ++ a]
743
- --assert a == 1 ;
747
+ --assert a == 1
744
748
--assert 100 = catch /quit [++ a quit /return 100 ++ a]
745
- --assert a == 2 ;
749
+ --assert a == 2
746
750
--assert 0 = call/shell/wait join system/options/boot { --do "quit"}
747
751
--assert 100 = call/shell/wait join system/options/boot { --do "quit/return 100"}
752
+ --test-- "nested catch"
753
+ a: 0
754
+ --assert 'x = catch [++ a catch /quit [++ a quit a: 0 ] a: a * 2 throw 'x a: a * 100 ]
755
+ --assert a == 4
756
+ a: 0
757
+ --assert 'x = catch [++ a catch /quit [++ a throw 'x a: 0 ] a: a * 2 quit 'x a: a * 100 ]
758
+ --assert a == 2
759
+ a: 0
760
+ --assert unset? catch /quit [++ a a: a + catch [++ a throw 100 a: 0 ] a: a * 2 quit a: a * 100 ]
761
+ --assert a == 202
762
+ a: 0
763
+ --assert unset? catch /quit [++ a a: a + catch [++ a quit a: 0 ] a: a * 2 throw 100 a: a * 100 ]
764
+ --assert a == 2
765
+
766
+ --test-- "catch/recover"
767
+ ;@@ https://github.com/Oldes/Rebol-issues/issues/1521
768
+ --assert unset? catch /quit/recover [a: 1 quit a: 2 ][a: a * 10 ]
769
+ --assert a = 10
770
+
771
+ --assert 2 = catch /quit/recover [a: 2 ][a: a * 10 ]
772
+ --assert a = 2
773
+
774
+ --assert 'x = catch /recover [a: 1 throw 'x a: 2 ][a: a * 10 ]
775
+ --assert a = 10
776
+
777
+ --assert 3 = catch /recover [a: 1 throw 3 a: 2 ][a: system/state/last-result a: a * 10 ]
778
+ --assert a = 30
779
+
748
780
749
781
===end-group===
750
782
0 commit comments