diff --git a/src/textprop.c b/src/textprop.c
index c2000a3..fdbb14d 100644
--- a/src/textprop.c
+++ b/src/textprop.c
@@ -158,6 +158,12 @@
     linenr_T	start_lnum;
     colnr_T	start_col;
 
+    if (in_vim9script()
+	    && (check_for_number_arg(argvars, 0) == FAIL
+		|| check_for_number_arg(argvars, 1) == FAIL
+		|| check_for_dict_arg(argvars, 2) == FAIL))
+	return;
+
     start_lnum = tv_get_number(&argvars[0]);
     start_col = tv_get_number(&argvars[1]);
     if (start_col < 1)
@@ -532,12 +538,21 @@
     void
 f_prop_clear(typval_T *argvars, typval_T *rettv UNUSED)
 {
-    linenr_T start = tv_get_number(&argvars[0]);
-    linenr_T end = start;
+    linenr_T start;
+    linenr_T end;
     linenr_T lnum;
     buf_T    *buf = curbuf;
     int	    did_clear = FALSE;
 
+    if (in_vim9script()
+	    && (check_for_number_arg(argvars, 0) == FAIL
+		|| check_for_opt_number_arg(argvars, 1) == FAIL
+		|| (argvars[1].v_type != VAR_UNKNOWN
+		    && check_for_opt_dict_arg(argvars, 2) == FAIL)))
+	return;
+
+    start = tv_get_number(&argvars[0]);
+    end = start;
     if (argvars[1].v_type != VAR_UNKNOWN)
     {
 	end = tv_get_number(&argvars[1]);
@@ -774,8 +789,7 @@
 
     if (in_vim9script()
 	    && (check_for_number_arg(argvars, 0) == FAIL
-		|| (argvars[1].v_type != VAR_UNKNOWN &&
-		    check_for_dict_arg(argvars, 1) == FAIL)))
+		|| check_for_opt_dict_arg(argvars, 1) == FAIL))
 	return;
 
     lnum = tv_get_number(&argvars[0]);
@@ -832,6 +846,14 @@
     int		both;
 
     rettv->vval.v_number = 0;
+
+    if (in_vim9script()
+	    && (check_for_dict_arg(argvars, 0) == FAIL
+		|| check_for_opt_number_arg(argvars, 1) == FAIL
+		|| (argvars[1].v_type != VAR_UNKNOWN
+		    && check_for_opt_number_arg(argvars, 2) == FAIL)))
+	return;
+
     if (argvars[0].v_type != VAR_DICT || argvars[0].vval.v_dict == NULL)
     {
 	emsg(_(e_invarg));
