patch 8.2.1230: Vim9: list index error not caught by try/catch
Problem: Vim9: list index error not caught by try/catch.
Solution: Do not bail out if an error is inside try/catch. (closes #6462)
diff --git a/src/testdir/test_vim9_script.vim b/src/testdir/test_vim9_script.vim
index 24ce668..fc2c380 100644
--- a/src/testdir/test_vim9_script.vim
+++ b/src/testdir/test_vim9_script.vim
@@ -509,6 +509,43 @@
add(l, '3')
endtry # comment
assert_equal(['1', 'wrong', '3'], l)
+
+ let n: number
+ try
+ n = l[3]
+ catch /E684:/
+ n = 99
+ endtry
+ assert_equal(99, n)
+
+ try
+ n = g:astring[3]
+ catch /E714:/
+ n = 77
+ endtry
+ assert_equal(77, n)
+
+ try
+ n = l[g:astring]
+ catch /E39:/
+ n = 77
+ endtry
+ assert_equal(77, n)
+
+ try
+ n = s:does_not_exist
+ catch /E121:/
+ n = 121
+ endtry
+ assert_equal(121, n)
+
+ let d = #{one: 1}
+ try
+ n = d[g:astring]
+ catch /E716:/
+ n = 222
+ endtry
+ assert_equal(222, n)
enddef
def ThrowFromDef()