patch 8.2.2443: Vim9: no compile time error for wrong str2float argument

Problem:    Vim9: no compile time error for wrong str2float argument.
Solution:   Check argument type. (closes #7759)
diff --git a/src/evalfunc.c b/src/evalfunc.c
index 1fad082..f0a15f9 100644
--- a/src/evalfunc.c
+++ b/src/evalfunc.c
@@ -435,6 +435,7 @@
 /*
  * Lists of functions that check the argument types of a builtin function.
  */
+argcheck_T arg1_string[] = {arg_string};
 argcheck_T arg3_string_nr_bool[] = {arg_string, arg_number, arg_bool};
 argcheck_T arg1_float_or_nr[] = {arg_float_or_nr};
 argcheck_T arg2_listblob_item[] = {arg_list_or_blob, arg_item_of_prev};
@@ -1561,7 +1562,7 @@
 			ret_list_number,    f_srand},
     {"state",		0, 1, FEARG_1,	    NULL,
 			ret_string,	    f_state},
-    {"str2float",	1, 1, FEARG_1,	    NULL,
+    {"str2float",	1, 1, FEARG_1,	    arg1_string,
 			ret_float,	    FLOAT_FUNC(f_str2float)},
     {"str2list",	1, 2, FEARG_1,	    NULL,
 			ret_list_number,    f_str2list},
diff --git a/src/testdir/test_vim9_builtin.vim b/src/testdir/test_vim9_builtin.vim
index e7bec71..5fd510f 100644
--- a/src/testdir/test_vim9_builtin.vim
+++ b/src/testdir/test_vim9_builtin.vim
@@ -916,6 +916,18 @@
   split('  aa  bb  ', '\W\+', true)->assert_equal(['', 'aa', 'bb', ''])
 enddef
 
+def Run_str2float()
+  if !has('float')
+    MissingFeature 'float'
+  endif
+    str2float("1.00")->assert_equal(1.00)
+    str2float("2e-2")->assert_equal(0.02)
+
+    CheckDefFailure(['echo str2float(123)'], 'E1013:')
+    CheckScriptFailure(['vim9script', 'echo str2float(123)'], 'E1024:')
+  endif
+enddef
+
 def Test_str2nr()
   str2nr("1'000'000", 10, true)->assert_equal(1000000)
 
diff --git a/src/version.c b/src/version.c
index d802f9c..b3d4fef 100644
--- a/src/version.c
+++ b/src/version.c
@@ -751,6 +751,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    2443,
+/**/
     2442,
 /**/
     2441,