patch 8.2.0493: Vim9: some error messages not tested

Problem:    Vim9: some error messages not tested.
Solution:   Add more tests.  Fix uncovered bugs.
diff --git a/src/testdir/test_vim9_script.vim b/src/testdir/test_vim9_script.vim
index 0c0bf83..1449017 100644
--- a/src/testdir/test_vim9_script.vim
+++ b/src/testdir/test_vim9_script.vim
@@ -117,6 +117,48 @@
   assert_equal('aregadd', @a)
   call CheckDefFailure(['@a += "more"'], 'E1013:')
   call CheckDefFailure(['@a += 123'], 'E1013:')
+
+  v:errmsg = 'none'
+  v:errmsg ..= 'again'
+  assert_equal('noneagain', v:errmsg)
+  call CheckDefFailure(['v:errmsg += "more"'], 'E1013:')
+  call CheckDefFailure(['v:errmsg += 123'], 'E1013:')
+
+  " Test default values.
+  let thebool: bool
+  assert_equal(v:false, thebool)
+
+  let thenumber: number
+  assert_equal(0, thenumber)
+
+  if has('float')
+    let thefloat: float
+    assert_equal(0.0, thefloat)
+  endif
+
+  let thestring: string
+  assert_equal('', thestring)
+
+  let theblob: blob
+  assert_equal(0z, theblob)
+
+  let thefunc: func
+  assert_equal(test_null_function(), thefunc)
+
+  let thepartial: partial
+  assert_equal(test_null_partial(), thepartial)
+
+  let thelist: list<any>
+  assert_equal([], thelist)
+
+  let thedict: dict<any>
+  assert_equal({}, thedict)
+
+  let thejob: job
+  assert_equal(test_null_job(), thejob)
+
+  let thechannel: channel
+  assert_equal(test_null_channel(), thechannel)
 enddef
 
 func Test_assignment_failure()
@@ -129,6 +171,7 @@
 
   call CheckDefFailure(['let [a; b; c] = g:list'], 'E452:')
 
+  call CheckDefFailure(['let somevar'], "E1022:")
   call CheckDefFailure(['let &option'], 'E1052:')
   call CheckDefFailure(['&g:option = 5'], 'E113:')