patch 8.2.2101: Vim9: memory leak when literal dict has an error

Problem:    Vim9: memory leak when literal dict has an error and when an
            expression is not complete.
Solution:   Clear the typval and the growarray.
diff --git a/src/dict.c b/src/dict.c
index 311b003..5581a55 100644
--- a/src/dict.c
+++ b/src/dict.c
@@ -929,6 +929,7 @@
 		if (**arg != ']')
 		{
 		    emsg(_(e_missing_matching_bracket_after_dict_key));
+		    clear_tv(&tvkey);
 		    return FAIL;
 		}
 		++*arg;
diff --git a/src/version.c b/src/version.c
index 2754d2f..56cea26 100644
--- a/src/version.c
+++ b/src/version.c
@@ -751,6 +751,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    2101,
+/**/
     2100,
 /**/
     2099,
diff --git a/src/vim9compile.c b/src/vim9compile.c
index f02ea60..bfa54fe 100644
--- a/src/vim9compile.c
+++ b/src/vim9compile.c
@@ -4392,7 +4392,10 @@
 	    // eval the next expression
 	    *arg = skipwhite(p + 2);
 	    if (may_get_next_line_error(p + 2, arg, cctx) == FAIL)
+	    {
+		ga_clear(&end_ga);
 		return FAIL;
+	    }
 
 	    if ((opchar == '|' ? compile_expr3(arg, cctx, ppconst)
 				  : compile_expr4(arg, cctx, ppconst)) == FAIL)