patch 8.2.2122: Vim9: crash when sourcing vim9script early

Problem:    Vim9: crash when sourcing vim9script early.
Solution:   Use set_option_value() instead of setting p_cpo directly.
            (closes #7441)
diff --git a/src/testdir/test_vim9_script.vim b/src/testdir/test_vim9_script.vim
index 7012f9e..72a373a 100644
--- a/src/testdir/test_vim9_script.vim
+++ b/src/testdir/test_vim9_script.vim
@@ -2857,6 +2857,17 @@
   delete('Xdidit')
 enddef
 
+def Test_restoring_cpo()
+  writefile(['vim9script', 'set nocp'], 'Xsourced')
+  writefile(['call writefile(["done"], "Xdone")', 'quit!'], 'Xclose')
+  if RunVim([], [], '-u NONE +"set cpo+=a" -S Xsourced -S Xclose')
+    assert_equal(['done'], readfile('Xdone'))
+  endif
+  delete('Xsourced')
+  delete('Xclose')
+enddef
+
+
 def Test_unset_any_variable()
   var lines =<< trim END
     var name: any