diff --git a/runtime/doc/eval.txt b/runtime/doc/eval.txt
index c86d13d..296b3a1 100644
--- a/runtime/doc/eval.txt
+++ b/runtime/doc/eval.txt
@@ -3575,9 +3575,10 @@
 		When {comp} is a string then the number of not overlapping
 		occurrences of {expr} is returned. Zero is returned when
 		{expr} is an empty string.
+
 		Can also be used as a |method|: >
 			mylist->count(val)
-
+<
 							*cscope_connection()*
 cscope_connection([{num} , {dbpath} [, {prepend}]])
 		Checks for the existence of a |cscope| connection.  If no
@@ -5408,6 +5409,9 @@
 		The result is a Number, which is 1 if |Dictionary| {dict} has
 		an entry with key {key}.  Zero otherwise.
 
+		Can also be used as a |method|: >
+			mydict->has_key(key)
+
 haslocaldir([{winnr} [, {tabnr}]])			*haslocaldir()*
 		The result is a Number:
 		    1   when the window has set a local directory via |:lcd|
@@ -8294,6 +8298,8 @@
 			:let items = split(line, ':', 1)
 <		The opposite function is |join()|.
 
+		Can also be used as a |method|: >
+			GetString()->split()
 
 sqrt({expr})						*sqrt()*
 		Return the non-negative square root of Float {expr} as a
@@ -8337,12 +8343,19 @@
 		properly: >
 			str2list("á")		returns [97, 769]
 
+<		Can also be used as a |method|: >
+			GetString()->str2list()
+
+
 str2nr({expr} [, {base}])				*str2nr()*
 		Convert string {expr} to a number.
 		{base} is the conversion base, it can be 2, 8, 10 or 16.
+
 		When {base} is omitted base 10 is used.  This also means that
 		a leading zero doesn't cause octal conversion to be used, as
-		with the default String to Number conversion.
+		with the default String to Number conversion.  Example: >
+			let nr = str2nr('123')
+<
 		When {base} is 16 a leading "0x" or "0X" is ignored.  With a
 		different base the result will be zero.  Similarly, when
 		{base} is 8 a leading "0" is ignored, and when {base} is 2 a
@@ -8470,6 +8483,9 @@
 		|strchars()|.
 		Also see |len()|, |strdisplaywidth()| and |strwidth()|.
 
+		Can also be used as a |method|: >
+			GetString()->strlen()
+
 strpart({src}, {start} [, {len}])			*strpart()*
 		The result is a String, which is part of {src}, starting from
 		byte {start}, with the byte length {len}.
@@ -8514,6 +8530,9 @@
 <		This displays a newline in register a as "^@" instead of
 		starting a new line.
 
+		Can also be used as a |method|: >
+			GetString()->strtrans()
+
 strwidth({expr})					*strwidth()*
 		The result is a Number, which is the number of display cells
 		String {expr} occupies.  A Tab character is counted as one
@@ -8522,6 +8541,9 @@
 		Ambiguous, this function's return value depends on 'ambiwidth'.
 		Also see |strlen()|, |strdisplaywidth()| and |strchars()|.
 
+		Can also be used as a |method|: >
+			GetString()->strwidth()
+
 submatch({nr} [, {list}])			*submatch()* *E935*
 		Only for an expression in a |:substitute| command or
 		substitute() function.
@@ -8589,6 +8611,9 @@
 		|submatch()| returns.  Example: >
 		   :echo substitute(s, '%\(\x\x\)', {m -> '0x' . m[1]}, 'g')
 
+<		Can also be used as a |method|: >
+			GetString()->substitute(pat, sub, flags)
+
 swapinfo({fname})					*swapinfo()*
 		The result is a dictionary, which holds information about the
 		swapfile {fname}. The available fields are:
@@ -8674,12 +8699,19 @@
 		cursor): >
 	:echo synIDattr(synIDtrans(synID(line("."), col("."), 1)), "fg")
 <
+		Can also be used as a |method|: >
+	:echo synID(line("."), col("."), 1)->synIDtrans()->synIDattr("fg")
+
+
 synIDtrans({synID})					*synIDtrans()*
 		The result is a Number, which is the translated syntax ID of
 		{synID}.  This is the syntax group ID of what is being used to
 		highlight the character.  Highlight links given with
 		":highlight link" are followed.
 
+		Can also be used as a |method|: >
+	:echo synID(line("."), col("."), 1)->synIDtrans()->synIDattr("fg")
+
 synconcealed({lnum}, {col})				*synconcealed()*
 		The result is a List with currently three items:
 		1. The first item in the list is 0 if the character at the
@@ -8784,6 +8816,9 @@
 		Unlike ":!cmd" there is no automatic check for changed files.
 		Use |:checktime| to force a check.
 
+		Can also be used as a |method|: >
+			:echo GetCmd()->system()
+
 
 systemlist({expr} [, {input}])				*systemlist()*
 		Same as |system()|, but returns a |List| with lines (parts of
@@ -8794,6 +8829,9 @@
 
 		Returns an empty string on error.
 
+		Can also be used as a |method|: >
+			:echo GetCmd()->systemlist()
+
 
 tabpagebuflist([{arg}])					*tabpagebuflist()*
 		The result is a |List|, where each item is the number of the
diff --git a/src/evalfunc.c b/src/evalfunc.c
index 3b7b901..890b86f 100644
--- a/src/evalfunc.c
+++ b/src/evalfunc.c
@@ -995,7 +995,8 @@
 #define FEARG_2    2	    // base is the second argument
 
 /*
- * Methods that call the internal function with the base as the first argument.
+ * Methods that call the internal function with the base as one of the
+ * arguments.
  */
 static funcentry_T base_methods[] =
 {
@@ -1011,6 +1012,7 @@
     {"extend",		1, 2, 0,	    f_extend},
     {"filter",		1, 1, 0,	    f_filter},
     {"get",		1, 2, 0,	    f_get},
+    {"has_key",		1, 1, 0,	    f_has_key},
     {"index",		1, 3, 0,	    f_index},
     {"insert",		1, 2, 0,	    f_insert},
     {"items",		0, 0, 0,	    f_items},
@@ -1024,7 +1026,17 @@
     {"repeat",		1, 1, 0,	    f_repeat},
     {"reverse",		0, 0, 0,	    f_reverse},
     {"sort",		0, 2, 0,	    f_sort},
+    {"split",		0, 2, 0,	    f_split},
+    {"str2list",	0, 1, 0,	    f_str2list},
     {"string",		0, 0, 0,	    f_string},
+    {"strlen",		0, 0, 0,	    f_strlen},
+    {"strtrans",	0, 0, 0,	    f_strtrans},
+    {"strwidth",	0, 0, 0,	    f_strwidth},
+    {"substitute",	3, 3, 0,	    f_substitute},
+    {"synIDattr",	1, 2, 0,	    f_synIDattr},
+    {"synIDtrans",	0, 0, 0,	    f_synIDtrans},
+    {"system",		0, 1, 0,	    f_system},
+    {"systemlist",	0, 2, 0,	    f_systemlist},
     {"type",		0, 0, 0,	    f_type},
     {"uniq",		0, 2, 0,	    f_uniq},
     {"values",		0, 0, 0,	    f_values},
diff --git a/src/testdir/test_diffmode.vim b/src/testdir/test_diffmode.vim
index aae8b36..027cdc8 100644
--- a/src/testdir/test_diffmode.vim
+++ b/src/testdir/test_diffmode.vim
@@ -668,13 +668,13 @@
   diffthis
   redraw
 
-  call assert_equal(synIDattr(diff_hlID(-1, 1), "name"), "")
+  call diff_hlID(-1, 1)->synIDattr("name")->assert_equal("")
 
-  call assert_equal(synIDattr(diff_hlID(1, 1), "name"), "DiffChange")
-  call assert_equal(synIDattr(diff_hlID(1, 2), "name"), "DiffText")
-  call assert_equal(synIDattr(diff_hlID(2, 1), "name"), "")
-  call assert_equal(synIDattr(diff_hlID(3, 1), "name"), "DiffAdd")
-  call assert_equal(synIDattr(diff_hlID(4, 1), "name"), "")
+  call diff_hlID(1, 1)->synIDattr("name")->assert_equal("DiffChange")
+  call diff_hlID(1, 2)->synIDattr("name")->assert_equal("DiffText")
+  call diff_hlID(2, 1)->synIDattr("name")->assert_equal("")
+  call diff_hlID(3, 1)->synIDattr("name")->assert_equal("DiffAdd")
+  call diff_hlID(4, 1)->synIDattr("name")->assert_equal("")
 
   wincmd w
   call assert_equal(synIDattr(diff_hlID(1, 1), "name"), "DiffChange")
diff --git a/src/testdir/test_method.vim b/src/testdir/test_method.vim
index cc0fe5d..93918c8 100644
--- a/src/testdir/test_method.vim
+++ b/src/testdir/test_method.vim
@@ -46,6 +46,7 @@
   call assert_equal(2, d->get('two'))
   call assert_fails("let x = d->index(2)", 'E897:')
   call assert_fails("let x = d->insert(0)", 'E899:')
+  call assert_true(d->has_key('two'))
   call assert_equal([['one', 1], ['two', 2], ['three', 3]], d->items())
   call assert_fails("let x = d->join()", 'E714:')
   call assert_equal(['one', 'two', 'three'], d->keys())
@@ -65,6 +66,16 @@
   call assert_equal([1, 2, 3], d->values())
 endfunc
 
+func Test_string()
+  call assert_equal(['1', '2', '3'], '1 2 3'->split())
+  call assert_equal([1, 2, 3], '1 2 3'->split()->map({i, v -> str2nr(v)}))
+  call assert_equal([65, 66, 67], 'ABC'->str2list())
+  call assert_equal(3, 'ABC'->strlen())
+  call assert_equal('a^Mb^[c', "a\rb\ec"->strtrans())
+  call assert_equal(4, "aあb"->strwidth())
+  call assert_equal('axc', 'abc'->substitute('b', 'x', ''))
+endfunc
+
 func Test_append()
   new
   eval ['one', 'two', 'three']->append(1)
diff --git a/src/testdir/test_syntax.vim b/src/testdir/test_syntax.vim
index 562a44c..a316ce7 100644
--- a/src/testdir/test_syntax.vim
+++ b/src/testdir/test_syntax.vim
@@ -517,8 +517,8 @@
   call assert_equal([], synstack(1, 1))
 
   norm f/
-  call assert_equal(['cComment', 'cCommentStart'], map(synstack(line("."), col(".")), 'synIDattr(v:val, "name")'))
-  call assert_equal(['Comment', 'Comment'],	   map(synstack(line("."), col(".")), 'synIDattr(synIDtrans(v:val), "name")'))
+  eval synstack(line("."), col("."))->map('synIDattr(v:val, "name")')->assert_equal(['cComment', 'cCommentStart'])
+  eval synstack(line("."), col("."))->map('synIDattr(synIDtrans(v:val), "name")')->assert_equal(['Comment', 'Comment'])
 
   norm fA
   call assert_equal(['cComment'], map(synstack(line("."), col(".")), 'synIDattr(v:val, "name")'))
diff --git a/src/testdir/test_system.vim b/src/testdir/test_system.vim
index 25061ea..f09f509 100644
--- a/src/testdir/test_system.vim
+++ b/src/testdir/test_system.vim
@@ -4,13 +4,13 @@
   if !executable('echo') || !executable('cat') || !executable('wc')
     return
   endif
-  let out = system('echo 123')
+  let out = 'echo 123'->system()
   " On Windows we may get a trailing space.
   if out != "123 \n"
     call assert_equal("123\n", out)
   endif
 
-  let out = systemlist('echo 123')
+  let out = 'echo 123'->systemlist()
   " On Windows we may get a trailing space and CR.
   if out != ["123 \r"]
     call assert_equal(['123'], out)
diff --git a/src/version.c b/src/version.c
index 80e0ce1..83c11ab 100644
--- a/src/version.c
+++ b/src/version.c
@@ -774,6 +774,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    1809,
+/**/
     1808,
 /**/
     1807,
