patch 8.2.1952: Vim9: crash when using a NULL dict key

Problem:    Vim9: crash when using a NULL dict key.
Solution:   Use a NULL dict key like an empty string. (closes #7249)
diff --git a/src/testdir/test_vim9_expr.vim b/src/testdir/test_vim9_expr.vim
index 656718c..2d741e4 100644
--- a/src/testdir/test_vim9_expr.vim
+++ b/src/testdir/test_vim9_expr.vim
@@ -1902,6 +1902,8 @@
   var dictdict: dict<dict<string>> = #{one: #{a: 'text'}, two: #{}}
   dictdict = #{one: #{}, two: #{a: 'text'}}
   dictdict = #{one: #{}, two: #{}}
+
+  assert_equal({'': 0}, {matchstr('string', 'wont match'): 0})
  
   CheckDefFailure(["var x = #{a:8}"], 'E1069:', 1)
   CheckDefFailure(["var x = #{a : 8}"], 'E1068:', 1)
diff --git a/src/version.c b/src/version.c
index d677744..98a3ab1 100644
--- a/src/version.c
+++ b/src/version.c
@@ -751,6 +751,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    1952,
+/**/
     1951,
 /**/
     1950,
diff --git a/src/vim9execute.c b/src/vim9execute.c
index 3302787..eb0e1db 100644
--- a/src/vim9execute.c
+++ b/src/vim9execute.c
@@ -1738,6 +1738,7 @@
 		    int		count = iptr->isn_arg.number;
 		    dict_T	*dict = dict_alloc();
 		    dictitem_T	*item;
+		    char_u	*key;
 
 		    if (dict == NULL)
 			goto failed;
@@ -1746,15 +1747,17 @@
 			// have already checked key type is VAR_STRING
 			tv = STACK_TV_BOT(2 * (idx - count));
 			// check key is unique
-			item = dict_find(dict, tv->vval.v_string, -1);
+			key = tv->vval.v_string == NULL
+					    ? (char_u *)"" : tv->vval.v_string;
+			item = dict_find(dict, key, -1);
 			if (item != NULL)
 			{
 			    SOURCING_LNUM = iptr->isn_lnum;
-			    semsg(_(e_duplicate_key), tv->vval.v_string);
+			    semsg(_(e_duplicate_key), key);
 			    dict_unref(dict);
 			    goto on_error;
 			}
-			item = dictitem_alloc(tv->vval.v_string);
+			item = dictitem_alloc(key);
 			clear_tv(tv);
 			if (item == NULL)
 			{