diff src/testdir/test_vim9_builtin.vim @ 23990:06da0685077b v8.2.2537

patch 8.2.2537: Vim9: crash when map() fails Commit: https://github.com/vim/vim/commit/027c4ab4d2e3ff031b98e0fb648f5acbea180293 Author: Bram Moolenaar <Bram@vim.org> Date: Sun Feb 21 16:20:18 2021 +0100 patch 8.2.2537: Vim9: crash when map() fails Problem: Vim9: crash when map() fails. Solution: Clear typval before using it. (closes https://github.com/vim/vim/issues/7884)
author Bram Moolenaar <Bram@vim.org>
date Sun, 21 Feb 2021 16:30:03 +0100
parents 5db7d275543c
children 1765b5b0f08d
line wrap: on
line diff
--- a/src/testdir/test_vim9_builtin.vim
+++ b/src/testdir/test_vim9_builtin.vim
@@ -690,6 +690,27 @@ def Test_maparg_mapset()
   nunmap <F3>
 enddef
 
+def Test_map_failure()
+  CheckFeature job
+
+  var lines =<< trim END
+      vim9script
+      writefile([], 'Xtmpfile')
+      silent e Xtmpfile
+      var d = {[bufnr('%')]: {a: 0}}
+      au BufReadPost * Func()
+      def Func()
+          if d->has_key('')
+          endif
+          eval d[expand('<abuf>')]->mapnew((_, v: dict<job>) => 0)
+      enddef
+      e
+  END
+  CheckScriptFailure(lines, 'E1013:')
+  au! BufReadPost
+  delete('Xtmpfile')
+enddef
+
 def Test_max()
   g:flag = true
   var l1: list<number> = g:flag