patch 8.2.1826: Vim9: cannot use a {} block at script level

Problem:    Vim9: cannot use a {} block at script level.
Solution:   Recognize a {} block.
diff --git a/src/ex_eval.c b/src/ex_eval.c
index d205caf..57c6178 100644
--- a/src/ex_eval.c
+++ b/src/ex_eval.c
@@ -1002,7 +1002,7 @@
     did_endif = TRUE;
     if (cstack->cs_idx < 0
 	    || (cstack->cs_flags[cstack->cs_idx]
-					   & (CSF_WHILE | CSF_FOR | CSF_TRY)))
+				& (CSF_WHILE | CSF_FOR | CSF_TRY | CSF_BLOCK)))
 	eap->errmsg = _(e_endif_without_if);
     else
     {
@@ -1043,7 +1043,7 @@
 
     if (cstack->cs_idx < 0
 	    || (cstack->cs_flags[cstack->cs_idx]
-					   & (CSF_WHILE | CSF_FOR | CSF_TRY)))
+				& (CSF_WHILE | CSF_FOR | CSF_TRY | CSF_BLOCK)))
     {
 	if (eap->cmdidx == CMD_else)
 	{
@@ -1375,6 +1375,37 @@
     }
 }
 
+/*
+ * "{" start of a block in Vim9 script
+ */
+    void
+ex_block(exarg_T *eap)
+{
+    cstack_T	*cstack = eap->cstack;
+
+    if (cstack->cs_idx == CSTACK_LEN - 1)
+	eap->errmsg = _("E579: block nesting too deep");
+    else
+    {
+	enter_block(cstack);
+	cstack->cs_flags[cstack->cs_idx] = CSF_BLOCK | CSF_ACTIVE | CSF_TRUE;
+    }
+}
+
+/*
+ * "}" end of a block in Vim9 script
+ */
+    void
+ex_endblock(exarg_T *eap)
+{
+    cstack_T	*cstack = eap->cstack;
+
+    if (cstack->cs_idx < 0
+	    || (cstack->cs_flags[cstack->cs_idx] & CSF_BLOCK) == 0)
+	eap->errmsg = _(e_endblock_without_block);
+    else
+	leave_block(cstack);
+}
 
 /*
  * ":throw expr"