patch 8.2.2781: add() silently skips when adding to null list or blob

Problem:    Add() silently skips when adding to null list or blob.
Solution:   Give an error in Vim9 script.  Allocate blob when it is NULL like
            with list and dict.
diff --git a/src/list.c b/src/list.c
index 56b2188..988b2d9 100644
--- a/src/list.c
+++ b/src/list.c
@@ -2412,22 +2412,33 @@
     void
 f_add(typval_T *argvars, typval_T *rettv)
 {
-    list_T	*l;
-    blob_T	*b;
-
     rettv->vval.v_number = 1; // Default: Failed
     if (argvars[0].v_type == VAR_LIST)
     {
-	if ((l = argvars[0].vval.v_list) != NULL
-		&& !value_check_lock(l->lv_lock,
-					 (char_u *)N_("add() argument"), TRUE)
+	list_T	*l = argvars[0].vval.v_list;
+
+	if (l == NULL)
+	{
+	    if (in_vim9script())
+		emsg(_(e_cannot_add_to_null_list));
+	}
+	else if (!value_check_lock(l->lv_lock,
+					  (char_u *)N_("add() argument"), TRUE)
 		&& list_append_tv(l, &argvars[1]) == OK)
+	{
 	    copy_tv(&argvars[0], rettv);
+	}
     }
     else if (argvars[0].v_type == VAR_BLOB)
     {
-	if ((b = argvars[0].vval.v_blob) != NULL
-		&& !value_check_lock(b->bv_lock,
+	blob_T	*b = argvars[0].vval.v_blob;
+
+	if (b == NULL)
+	{
+	    if (in_vim9script())
+		emsg(_(e_cannot_add_to_null_blob));
+	}
+	else if (!value_check_lock(b->bv_lock,
 					 (char_u *)N_("add() argument"), TRUE))
 	{
 	    int		error = FALSE;