patch 8.2.1894: Vim9: command modifiers are not supported

Problem:    Vim9: command modifiers are not supported.
Solution:   Support "silent" and "silent!".
diff --git a/src/testdir/test_vim9_cmd.vim b/src/testdir/test_vim9_cmd.vim
index 296aa55..710cd2f 100644
--- a/src/testdir/test_vim9_cmd.vim
+++ b/src/testdir/test_vim9_cmd.vim
@@ -401,5 +401,17 @@
   CheckScriptSuccess(lines)
 enddef
 
+def Test_modifier_silent()
+  echomsg 'last one'
+  silent echomsg "text"
+  redir => g:testmsg
+    :1messages
+  redir END
+  assert_equal("\nlast one", g:testmsg)
+  unlet g:testmsg
+
+  silent! echoerr "error"
+enddef
+
 
 " vim: ts=8 sw=2 sts=2 expandtab tw=80 fdm=marker
diff --git a/src/testdir/test_vim9_disassemble.vim b/src/testdir/test_vim9_disassemble.vim
index 97797bc..eadac27 100644
--- a/src/testdir/test_vim9_disassemble.vim
+++ b/src/testdir/test_vim9_disassemble.vim
@@ -1617,4 +1617,28 @@
         res)
 enddef
 
+
+def s:SilentMessage()
+  silent echomsg "text"
+  silent! echoerr "error"
+enddef
+
+def Test_silent()
+  var res = execute('disass s:SilentMessage')
+  assert_match('<SNR>\d*_SilentMessage\_s*' ..
+        'silent echomsg "text"\_s*' ..
+        '\d SILENT\_s*' ..
+        '\d PUSHS "text"\_s*' ..
+        '\d ECHOMSG 1\_s*' ..
+        '\d UNSILENT\_s*' ..
+        'silent! echoerr "error"\_s*' ..
+        '\d SILENT!\_s*' ..
+        '\d PUSHS "error"\_s*' ..
+        '\d ECHOERR 1\_s*' ..
+        '\d UNSILENT!\_s*' ..
+        '\d PUSHNR 0\_s*' ..
+        '\d RETURN',
+        res)
+enddef
+
 " vim: ts=8 sw=2 sts=2 expandtab tw=80 fdm=marker