patch 8.2.0311: Vim9: insufficient script tests

Problem:    Vim9: insufficient script tests.
Solution:   Add tests.  Free imports when re-using a script.
diff --git a/src/scriptfile.c b/src/scriptfile.c
index 09548d8..9c644e2 100644
--- a/src/scriptfile.c
+++ b/src/scriptfile.c
@@ -1284,6 +1284,9 @@
 		di = HI2DI(hi);
 		di->di_flags |= DI_FLAGS_RELOAD;
 	    }
+
+	// old imports are no longer valid
+	free_imports(sid);
     }
     else
     {
diff --git a/src/testdir/test_vim9_script.vim b/src/testdir/test_vim9_script.vim
index a7bccec..1af897e 100644
--- a/src/testdir/test_vim9_script.vim
+++ b/src/testdir/test_vim9_script.vim
@@ -333,8 +333,30 @@
   delete('Ximport.vim')
   delete('Xexport.vim')
 
+  " Check that in a Vim9 script 'cpo' is set to the Vim default.
+  set cpo&vi
+  let cpo_before = &cpo
+  let lines =<< trim END
+    vim9script
+    g:cpo_in_vim9script = &cpo
+  END
+  writefile(lines, 'Xvim9_script')
+  source Xvim9_script
+  assert_equal(cpo_before, &cpo)
+  set cpo&vim
+  assert_equal(&cpo, g:cpo_in_vim9script)
+  delete('Xvim9_script')
+enddef
+
+def Test_vim9script_fails()
   CheckScriptFailure(['scriptversion 2', 'vim9script'], 'E1039:')
   CheckScriptFailure(['vim9script', 'scriptversion 2'], 'E1040:')
+  CheckScriptFailure(['export let some = 123'], 'E1042:')
+  CheckScriptFailure(['vim9script', 'export let g:some'], 'E1044:')
+  CheckScriptFailure(['vim9script', 'export echo 134'], 'E1043:')
+
+  assert_fails('vim9script', 'E1038')
+  assert_fails('export something', 'E1042')
 enddef
 
 def Test_vim9script_call()
diff --git a/src/version.c b/src/version.c
index 61ee30c..ab8cb0e 100644
--- a/src/version.c
+++ b/src/version.c
@@ -739,6 +739,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    311,
+/**/
     310,
 /**/
     309,