patch 8.2.0280: Vim9: throw in :def function not caught higher up

Problem:    Vim9: throw in :def function not caught higher up.
Solution:   Set "need_rethrow".
diff --git a/src/testdir/test_vim9_script.vim b/src/testdir/test_vim9_script.vim
index 899a32a..ae33935 100644
--- a/src/testdir/test_vim9_script.vim
+++ b/src/testdir/test_vim9_script.vim
@@ -206,6 +206,34 @@
   assert_equal(['1', 'wrong', '3'], l)
 enddef
 
+def ThrowFromDef()
+  throw 'getout'
+enddef
+
+func CatchInFunc()
+  try
+    call ThrowFromDef()
+  catch
+    let g:thrown_func = v:exception
+  endtry
+endfunc
+
+def CatchInDef()
+  try
+    ThrowFromDef()
+  catch
+    g:thrown_def = v:exception
+  endtry
+enddef
+
+def Test_try_catch_nested()
+  CatchInFunc()
+  assert_equal('getout', g:thrown_func)
+
+  CatchInDef()
+  assert_equal('getout', g:thrown_def)
+enddef
+
 let s:export_script_lines =<< trim END
   vim9script
   let name: string = 'bob'
diff --git a/src/version.c b/src/version.c
index d748416..2ff3460 100644
--- a/src/version.c
+++ b/src/version.c
@@ -739,6 +739,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    280,
+/**/
     279,
 /**/
     278,
diff --git a/src/vim9execute.c b/src/vim9execute.c
index 4555748..4349489 100644
--- a/src/vim9execute.c
+++ b/src/vim9execute.c
@@ -482,6 +482,7 @@
 		    tv->v_type = VAR_NUMBER;
 		    tv->vval.v_number = 0;
 		    ++ectx.ec_stack.ga_len;
+		    need_rethrow = TRUE;
 		    goto done;
 		}