diff --git a/src/evalfunc.c b/src/evalfunc.c
index 13326e3..676f037 100644
--- a/src/evalfunc.c
+++ b/src/evalfunc.c
@@ -684,32 +684,32 @@
 #if defined(FEAT_PYTHON) || defined(FEAT_PYTHON3)
     {"pyxeval",		1, 1, FEARG_1,	  f_pyxeval},
 #endif
-    {"range",		1, 3, 0,	  f_range},
-    {"readdir",		1, 2, 0,	  f_readdir},
-    {"readfile",	1, 3, 0,	  f_readfile},
+    {"range",		1, 3, FEARG_1,	  f_range},
+    {"readdir",		1, 2, FEARG_1,	  f_readdir},
+    {"readfile",	1, 3, FEARG_1,	  f_readfile},
     {"reg_executing",	0, 0, 0,	  f_reg_executing},
     {"reg_recording",	0, 0, 0,	  f_reg_recording},
-    {"reltime",		0, 2, 0,	  f_reltime},
+    {"reltime",		0, 2, FEARG_1,	  f_reltime},
 #ifdef FEAT_FLOAT
-    {"reltimefloat",	1, 1, 0,	  f_reltimefloat},
+    {"reltimefloat",	1, 1, FEARG_1,	  f_reltimefloat},
 #endif
-    {"reltimestr",	1, 1, 0,	  f_reltimestr},
-    {"remote_expr",	2, 4, 0,	  f_remote_expr},
-    {"remote_foreground", 1, 1, 0,	  f_remote_foreground},
-    {"remote_peek",	1, 2, 0,	  f_remote_peek},
-    {"remote_read",	1, 2, 0,	  f_remote_read},
-    {"remote_send",	2, 3, 0,	  f_remote_send},
-    {"remote_startserver", 1, 1, 0,	  f_remote_startserver},
+    {"reltimestr",	1, 1, FEARG_1,	  f_reltimestr},
+    {"remote_expr",	2, 4, FEARG_1,	  f_remote_expr},
+    {"remote_foreground", 1, 1, FEARG_1,  f_remote_foreground},
+    {"remote_peek",	1, 2, FEARG_1,	  f_remote_peek},
+    {"remote_read",	1, 2, FEARG_1,	  f_remote_read},
+    {"remote_send",	2, 3, FEARG_1,	  f_remote_send},
+    {"remote_startserver", 1, 1, FEARG_1,  f_remote_startserver},
     {"remove",		2, 3, FEARG_1,	  f_remove},
-    {"rename",		2, 2, 0,	  f_rename},
+    {"rename",		2, 2, FEARG_1,	  f_rename},
     {"repeat",		2, 2, FEARG_1,	  f_repeat},
-    {"resolve",		1, 1, 0,	  f_resolve},
+    {"resolve",		1, 1, FEARG_1,	  f_resolve},
     {"reverse",		1, 1, FEARG_1,	  f_reverse},
 #ifdef FEAT_FLOAT
     {"round",		1, 1, FEARG_1,	  f_round},
 #endif
 #ifdef FEAT_RUBY
-    {"rubyeval",	1, 1, 0,	  f_rubyeval},
+    {"rubyeval",	1, 1, FEARG_1,	  f_rubyeval},
 #endif
     {"screenattr",	2, 2, 0,	  f_screenattr},
     {"screenchar",	2, 2, 0,	  f_screenchar},
diff --git a/src/testdir/test_clientserver.vim b/src/testdir/test_clientserver.vim
index 385ff91..2e4a66e 100644
--- a/src/testdir/test_clientserver.vim
+++ b/src/testdir/test_clientserver.vim
@@ -34,7 +34,7 @@
   " When using valgrind it takes much longer.
   call WaitForAssert({-> assert_match(name, serverlist())})
 
-  call remote_foreground(name)
+  eval name->remote_foreground()
 
   call remote_send(name, ":let testvar = 'yes'\<CR>")
   call WaitFor('remote_expr("' . name . '", "exists(\"testvar\") ? testvar : \"\"", "", 1) == "yes"')
@@ -53,7 +53,7 @@
     endif
     " Wait for the server to be up and answering requests.
     sleep 100m
-    call WaitForAssert({-> assert_true(remote_expr(name, "v:version", "", 1) != "")})
+    call WaitForAssert({-> assert_true(name->remote_expr("v:version", "", 1) != "")})
 
     call remote_send(name, ":let testvar = 'maybe'\<CR>")
     call WaitForAssert({-> assert_equal('maybe', remote_expr(name, "testvar", "", 2))})
@@ -63,7 +63,7 @@
 
   " Expression evaluated locally.
   if v:servername == ''
-    call remote_startserver('MYSELF')
+    eval 'MYSELF'->remote_startserver()
     " May get MYSELF1 when running the test again.
     call assert_match('MYSELF', v:servername)
   endif
@@ -71,11 +71,11 @@
   call assert_equal('myself', remote_expr(v:servername, 'testvar'))
 
   call remote_send(name, ":call server2client(expand('<client>'), 'got it')\<CR>", 'g:myserverid')
-  call assert_equal('got it', remote_read(g:myserverid, 2))
+  call assert_equal('got it', g:myserverid->remote_read(2))
 
   call remote_send(name, ":call server2client(expand('<client>'), 'another')\<CR>", 'g:myserverid')
   let peek_result = 'nothing'
-  let r = remote_peek(g:myserverid, 'peek_result')
+  let r = g:myserverid->remote_peek('peek_result')
   " unpredictable whether the result is already available.
   if r > 0
     call assert_equal('another', peek_result)
@@ -89,7 +89,7 @@
   call assert_equal('another', g:peek_result)
   call assert_equal('another', remote_read(g:myserverid, 2))
 
-  call remote_send(name, ":qa!\<CR>")
+  eval name->remote_send(":qa!\<CR>")
   try
     call WaitForAssert({-> assert_equal("dead", job_status(job))})
   finally
diff --git a/src/testdir/test_eval_stuff.vim b/src/testdir/test_eval_stuff.vim
index 82f9cac..b518f5a 100644
--- a/src/testdir/test_eval_stuff.vim
+++ b/src/testdir/test_eval_stuff.vim
@@ -75,7 +75,7 @@
   call setline(1, ['one', 'two', 'three'])
   setlocal ff=dos
   write XReadfile
-  let lines = readfile('XReadfile')
+  let lines = 'XReadfile'->readfile()
   call assert_equal(['one', 'two', 'three'], lines)
   let lines = readfile('XReadfile', '', 2)
   call assert_equal(['one', 'two'], lines)
diff --git a/src/testdir/test_functions.vim b/src/testdir/test_functions.vim
index fc22bcd..dfd6a93 100644
--- a/src/testdir/test_functions.vim
+++ b/src/testdir/test_functions.vim
@@ -253,7 +253,7 @@
   call delete('Xlink')
 
   silent !ln -s -f Xlink2/ Xlink1
-  call assert_equal('Xlink2', resolve('Xlink1'))
+  call assert_equal('Xlink2', 'Xlink1'->resolve())
   call assert_equal('Xlink2/', resolve('Xlink1/'))
   call delete('Xlink1')
 
@@ -1413,7 +1413,7 @@
   " is invalid in that buffer.
   call writefile(['just one line'], 'Xfuncrange2')
   new
-  call setline(1, range(10))
+  call setline(1, 10->range())
   write Xfuncrange1
   call assert_fails('5,8call EditAnotherFile()', 'E16:')
 
@@ -1544,7 +1544,7 @@
   call assert_equal(['bar.txt', 'dir', 'foo.txt'], sort(files))
 
   " Only results containing "f"
-  let files = readdir('Xdir', { x -> stridx(x, 'f') !=- 1 })
+  let files = 'Xdir'->readdir({ x -> stridx(x, 'f') !=- 1 })
   call assert_equal(['foo.txt'], sort(files))
 
   " Only .txt files
diff --git a/src/testdir/test_reltime.vim b/src/testdir/test_reltime.vim
index 404ea3f..e25c3ce 100644
--- a/src/testdir/test_reltime.vim
+++ b/src/testdir/test_reltime.vim
@@ -8,11 +8,11 @@
   let now = reltime()
   sleep 10m
   let later = reltime()
-  let elapsed = reltime(now)
+  let elapsed = now->reltime()
   call assert_true(reltimestr(elapsed) =~ '0\.0')
-  call assert_true(reltimestr(elapsed) != '0.0')
+  call assert_true(elapsed->reltimestr() != '0.0')
   call assert_true(reltimefloat(elapsed) < 0.1)
-  call assert_true(reltimefloat(elapsed) > 0.0)
+  call assert_true(elapsed->reltimefloat() > 0.0)
 
   let same = reltime(now, now)
   call assert_equal('0.000', split(reltimestr(same))[0][:4])
diff --git a/src/testdir/test_rename.vim b/src/testdir/test_rename.vim
index 2311caf..3887fcf 100644
--- a/src/testdir/test_rename.vim
+++ b/src/testdir/test_rename.vim
@@ -25,7 +25,7 @@
   set fileignorecase
   call writefile(['foo'], 'Xrename')
 
-  call assert_equal(0, rename('Xrename', 'XRENAME'))
+  call assert_equal(0, 'Xrename'->rename('XRENAME'))
 
   call assert_equal(['foo'], readfile('XRENAME'))
 
diff --git a/src/version.c b/src/version.c
index d61b59c..420d1ff 100644
--- a/src/version.c
+++ b/src/version.c
@@ -758,6 +758,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    1987,
+/**/
     1986,
 /**/
     1985,
