patch 8.2.2671: error for line number in legacy script

Problem:    Error for line number in legacy script.
Solution:   Check for number type.
diff --git a/src/typval.c b/src/typval.c
index ca561dd..cf1208d 100644
--- a/src/typval.c
+++ b/src/typval.c
@@ -1621,11 +1621,12 @@
 
     if (argvars[0].v_type != VAR_STRING || !in_vim9script())
 	lnum = (linenr_T)tv_get_number_chk(&argvars[0], NULL);
-    if (lnum < 0)  // no valid number, try using arg like line()
+    if (lnum <= 0 && argvars[0].v_type != VAR_NUMBER)
     {
 	int	fnum;
 	pos_T	*fp = var2fpos(&argvars[0], TRUE, &fnum, FALSE);
 
+	// no valid number, try using arg like line()
 	if (fp != NULL)
 	    lnum = fp->lnum;
     }