diff src/testdir/test49.vim @ 21632:792398a9fe39 v8.2.1366

patch 8.2.1366: test 49 is old style Commit: https://github.com/vim/vim/commit/a6296200bd5191bab7efcdcc16c9e79eb498e8e0 Author: Bram Moolenaar <Bram@vim.org> Date: Wed Aug 5 11:23:13 2020 +0200 patch 8.2.1366: test 49 is old style Problem: Test 49 is old style. Solution: Convert several tests to new style. (Yegappan Lakshmanan, closes #6629)
author Bram Moolenaar <Bram@vim.org>
date Wed, 05 Aug 2020 11:30:03 +0200
parents eff8d8f72a82
children 97b887aecd4a
line wrap: on
line diff
--- a/src/testdir/test49.vim
+++ b/src/testdir/test49.vim
@@ -1,6 +1,6 @@
 " Vim script language tests
 " Author:	Servatius Brandt <Servatius.Brandt@fujitsu-siemens.com>
-" Last Change:	2019 Nov 03
+" Last Change:	2020 Jun 07
 
 "-------------------------------------------------------------------------------
 " Test environment							    {{{1
@@ -607,1647 +607,10 @@ com! -nargs=1 -bar ExecAsScript call Exe
 
 " END_OF_TEST_ENVIRONMENT - do not change or remove this line.
 
-
-" Tests 1 to 17 were moved to test_vimscript.vim
-let Xtest = 18
-
-"-------------------------------------------------------------------------------
-" Test 18:  Interrupt (Ctrl-C pressed)					    {{{1
-"
-"	    On an interrupt, the script processing is terminated immediately.
-"-------------------------------------------------------------------------------
-
-XpathINIT
-
-if ExtraVim()
-    if 1
-	Xpath 1					" X: 1
-	while 1
-	    Xpath 2				" X: 2
-	    if 1
-		Xpath 4				" X: 4
-		"INTERRUPT
-		Xpath 8				" X: 0
-		break
-		finish
-	    endif | Xpath 16			" X: 0
-	    Xpath 32				" X: 0
-	endwhile | Xpath 64			" X: 0
-	Xpath 128				" X: 0
-    endif | Xpath 256				" X: 0
-    Xpath 512					" X: 0
-endif
-
-if ExtraVim()
-    try
-	Xpath 1024				" X: 1024
-	"INTERRUPT
-	Xpath 2048				" X: 0
-    endtry | Xpath 4096				" X: 0
-    Xpath 8192					" X: 0
-endif
-
-if ExtraVim()
-    function! F()
-	if 1
-	    Xpath 16384				" X: 16384
-	    while 1
-		Xpath 32768			" X: 32768
-		if 1
-		    Xpath 65536			" X: 65536
-		    "INTERRUPT
-		    Xpath 131072		" X: 0
-		    break
-		    return
-		endif | Xpath 262144		" X: 0
-		Xpath Xpath 524288		" X: 0
-	    endwhile | Xpath 1048576		" X: 0
-	    Xpath Xpath 2097152			" X: 0
-	endif | Xpath Xpath 4194304		" X: 0
-	Xpath Xpath 8388608			" X: 0
-    endfunction
-
-    call F() | Xpath 16777216			" X: 0
-    Xpath 33554432				" X: 0
-endif
-
-if ExtraVim()
-    function! G()
-	try
-	    Xpath 67108864			" X: 67108864
-	    "INTERRUPT
-	    Xpath 134217728			" X: 0
-	endtry | Xpath 268435456		" X: 0
-	Xpath 536870912				" X: 0
-    endfunction
-
-    call G() | Xpath 1073741824			" X: 0
-    " The Xpath command does not accept 2^31 (negative); display explicitly:
-    exec "!echo 2147483648 >>" . g:ExtraVimResult
-						" X: 0
-endif
-
-Xcheck 67224583
-
-
-"-------------------------------------------------------------------------------
-" Test 19:  Aborting on errors inside :try/:endtry			    {{{1
-"
-"	    An error in a command dynamically enclosed in a :try/:endtry region
-"	    aborts script processing immediately.  It does not matter whether
-"	    the failing command is outside or inside a function and whether a
-"	    function has an "abort" attribute.
-"-------------------------------------------------------------------------------
-
-XpathINIT
-
-if ExtraVim()
-    function! F() abort
-	Xpath 1					" X: 1
-	asdf
-	Xpath 2					" X: 0
-    endfunction
-
-    try
-	Xpath 4					" X: 4
-	call F()
-	Xpath 8					" X: 0
-    endtry | Xpath 16				" X: 0
-    Xpath 32					" X: 0
-endif
-
-if ExtraVim()
-    function! G()
-	Xpath 64				" X: 64
-	asdf
-	Xpath 128				" X: 0
-    endfunction
-
-    try
-	Xpath 256				" X: 256
-	call G()
-	Xpath 512				" X: 0
-    endtry | Xpath 1024				" X: 0
-    Xpath 2048					" X: 0
-endif
-
-if ExtraVim()
-    try
-	Xpath 4096				" X: 4096
-	asdf
-	Xpath 8192				" X: 0
-    endtry | Xpath 16384			" X: 0
-    Xpath 32768					" X: 0
-endif
-
-if ExtraVim()
-    if 1
-	try
-	    Xpath 65536				" X: 65536
-	    asdf
-	    Xpath 131072			" X: 0
-	endtry | Xpath 262144			" X: 0
-    endif | Xpath 524288			" X: 0
-    Xpath 1048576				" X: 0
-endif
-
-if ExtraVim()
-    let p = 1
-    while p
-	let p = 0
-	try
-	    Xpath 2097152			" X: 2097152
-	    asdf
-	    Xpath 4194304			" X: 0
-	endtry | Xpath 8388608			" X: 0
-    endwhile | Xpath 16777216			" X: 0
-    Xpath 33554432				" X: 0
-endif
-
-if ExtraVim()
-    let p = 1
-    while p
-	let p = 0
-"	try
-	    Xpath 67108864			" X: 67108864
-    endwhile | Xpath 134217728			" X: 0
-    Xpath 268435456				" X: 0
-endif
-
-Xcheck 69275973
-"-------------------------------------------------------------------------------
-" Test 20:  Aborting on errors after :try/:endtry			    {{{1
-"
-"	    When an error occurs after the last active :try/:endtry region has
-"	    been left, termination behavior is as if no :try/:endtry has been
-"	    seen.
-"-------------------------------------------------------------------------------
-
-XpathINIT
-
-if ExtraVim()
-    let p = 1
-    while p
-	let p = 0
-	try
-	    Xpath 1				" X: 1
-	endtry
-	asdf
-    endwhile | Xpath 2				" X: 0
-    Xpath 4					" X: 4
-endif
-
-if ExtraVim()
-    while 1
-	try
-	    Xpath 8				" X: 8
-	    break
-	    Xpath 16				" X: 0
-	endtry
-    endwhile
-    Xpath 32					" X: 32
-    asdf
-    Xpath 64					" X: 64
-endif
-
-if ExtraVim()
-    while 1
-	try
-	    Xpath 128				" X: 128
-	    break
-	    Xpath 256				" X: 0
-	finally
-	    Xpath 512				" X: 512
-	endtry
-    endwhile
-    Xpath 1024					" X: 1024
-    asdf
-    Xpath 2048					" X: 2048
-endif
-
-if ExtraVim()
-    while 1
-	try
-	    Xpath 4096				" X: 4096
-	finally
-	    Xpath 8192				" X: 8192
-	    break
-	    Xpath 16384				" X: 0
-	endtry
-    endwhile
-    Xpath 32768					" X: 32768
-    asdf
-    Xpath 65536					" X: 65536
-endif
-
-if ExtraVim()
-    let p = 1
-    while p
-	let p = 0
-	try
-	    Xpath 131072			" X: 131072
-	    continue
-	    Xpath 262144			" X: 0
-	endtry
-    endwhile
-    Xpath 524288				" X: 524288
-    asdf
-    Xpath 1048576				" X: 1048576
-endif
-
-if ExtraVim()
-    let p = 1
-    while p
-	let p = 0
-	try
-	    Xpath 2097152			" X: 2097152
-	    continue
-	    Xpath 4194304			" X: 0
-	finally
-	    Xpath 8388608			" X: 8388608
-	endtry
-    endwhile
-    Xpath 16777216				" X: 16777216
-    asdf
-    Xpath 33554432				" X: 33554432
-endif
-
-if ExtraVim()
-    let p = 1
-    while p
-	let p = 0
-	try
-	    Xpath 67108864			" X: 67108864
-	finally
-	    Xpath 134217728			" X: 134217728
-	    continue
-	    Xpath 268435456			" X: 0
-	endtry
-    endwhile
-    Xpath 536870912				" X: 536870912
-    asdf
-    Xpath 1073741824				" X: 1073741824
-endif
-
-Xcheck 1874575085
-
-
-"-------------------------------------------------------------------------------
-" Test 21:  :finally for :try after :continue/:break/:return/:finish	    {{{1
-"
-"	    If a :try conditional stays inactive due to a preceding :continue,
-"	    :break, :return, or :finish, its :finally clause should not be
-"	    executed.
-"-------------------------------------------------------------------------------
-
-XpathINIT
-
-if ExtraVim()
-    function F()
-	let loops = 2
-	XloopINIT! 1 256
-	while loops > 0
-	    XloopNEXT
-	    let loops = loops - 1
-	    try
-		if loops == 1
-		    Xloop 1			" X: 1
-		    continue
-		    Xloop 2			" X: 0
-		elseif loops == 0
-		    Xloop 4			" X: 4*256
-		    break
-		    Xloop 8			" X: 0
-		endif
-
-		try		" inactive
-		    Xloop 16			" X: 0
-		finally
-		    Xloop 32			" X: 0
-		endtry
-	    finally
-		Xloop 64			" X: 64 + 64*256
-	    endtry
-	    Xloop 128				" X: 0
-	endwhile
-
-	try
-	    Xpath 65536				" X: 65536
-	    return
-	    Xpath 131072			" X: 0
-	    try		    " inactive
-		Xpath 262144			" X: 0
-	    finally
-		Xpath 524288			" X: 0
-	    endtry
-	finally
-	    Xpath 1048576			" X: 1048576
-	endtry
-	Xpath 2097152				" X: 0
-    endfunction
-
-    try
-	Xpath 4194304				" X: 4194304
-	call F()
-	Xpath 8388608				" X: 8388608
-	finish
-	Xpath 16777216				" X: 0
-	try		" inactive
-	    Xpath 33554432			" X: 0
-	finally
-	    Xpath 67108864			" X: 0
-	endtry
-    finally
-	Xpath 134217728				" X: 134217728
-    endtry
-    Xpath 268435456				" X: 0
-endif
-
-Xcheck 147932225
-
-
-"-------------------------------------------------------------------------------
-" Test 22:  :finally for a :try after an error/interrupt/:throw		    {{{1
-"
-"	    If a :try conditional stays inactive due to a preceding error or
-"	    interrupt or :throw, its :finally clause should not be executed.
-"-------------------------------------------------------------------------------
-
-XpathINIT
-
-if ExtraVim()
-    function! Error()
-	try
-	    asdf    " aborting error, triggering error exception
-	endtry
-    endfunction
-
-    Xpath 1					" X: 1
-    call Error()
-    Xpath 2					" X: 0
-
-    if 1	" not active due to error
-	try	" not active since :if inactive
-	    Xpath 4				" X: 0
-	finally
-	    Xpath 8				" X: 0
-	endtry
-    endif
-
-    try		" not active due to error
-	Xpath 16				" X: 0
-    finally
-	Xpath 32				" X: 0
-    endtry
-endif
-
-if ExtraVim()
-    function! Interrupt()
-	try
-	    "INTERRUPT	" triggering interrupt exception
-	endtry
-    endfunction
-
-    Xpath 64					" X: 64
-    call Interrupt()
-    Xpath 128					" X: 0
-
-    if 1	" not active due to interrupt
-	try	" not active since :if inactive
-	    Xpath 256				" X: 0
-	finally
-	    Xpath 512				" X: 0
-	endtry
-    endif
-
-    try		" not active due to interrupt
-	Xpath 1024				" X: 0
-    finally
-	Xpath 2048				" X: 0
-    endtry
-endif
-
-if ExtraVim()
-    function! Throw()
-	throw "xyz"
-    endfunction
-
-    Xpath 4096					" X: 4096
-    call Throw()
-    Xpath 8192					" X: 0
-
-    if 1	" not active due to :throw
-	try	" not active since :if inactive
-	    Xpath 16384				" X: 0
-	finally
-	    Xpath 32768				" X: 0
-	endtry
-    endif
-
-    try		" not active due to :throw
-	Xpath 65536				" X: 0
-    finally
-	Xpath 131072				" X: 0
-    endtry
-endif
-
-Xcheck 4161
-
-
-"-------------------------------------------------------------------------------
-" Test 23:  :catch clauses for a :try after a :throw			    {{{1
-"
-"	    If a :try conditional stays inactive due to a preceding :throw,
-"	    none of its :catch clauses should be executed.
-"-------------------------------------------------------------------------------
-
-XpathINIT
-
-if ExtraVim()
-    try
-	Xpath 1					" X: 1
-	throw "xyz"
-	Xpath 2					" X: 0
-
-	if 1	" not active due to :throw
-	    try	" not active since :if inactive
-		Xpath 4				" X: 0
-	    catch /xyz/
-		Xpath 8				" X: 0
-	    endtry
-	endif
-    catch /xyz/
-	Xpath 16				" X: 16
-    endtry
-
-    Xpath 32					" X: 32
-    throw "abc"
-    Xpath 64					" X: 0
-
-    try		" not active due to :throw
-	Xpath 128				" X: 0
-    catch /abc/
-	Xpath 256				" X: 0
-    endtry
-endif
-
-Xcheck 49
-
-
-"-------------------------------------------------------------------------------
-" Test 24:  :endtry for a :try after a :throw				    {{{1
-"
-"	    If a :try conditional stays inactive due to a preceding :throw,
-"	    its :endtry should not rethrow the exception to the next surrounding
-"	    active :try conditional.
-"-------------------------------------------------------------------------------
-
-XpathINIT
-
-if ExtraVim()
-    try			" try 1
-	try		" try 2
-	    Xpath 1				" X: 1
-	    throw "xyz"	" makes try 2 inactive
-	    Xpath 2				" X: 0
-
-	    try		" try 3
-		Xpath 4				" X: 0
-	    endtry	" no rethrow to try 1
-	catch /xyz/	" should catch although try 2 inactive
-	    Xpath 8				" X: 8
-	endtry
-    catch /xyz/		" try 1 active, but exception already caught
-	Xpath 16				" X: 0
-    endtry
-    Xpath 32					" X: 32
-endif
-
-Xcheck 41
-
-" Tests 25 and 26 were moved to test_trycatch.vim
-let Xtest = 27
-
-
-"-------------------------------------------------------------------------------
-" Test 27:  Executing :finally clauses after :return			    {{{1
-"
-"	    For a :return command dynamically enclosed in a :try/:endtry region,
-"	    :finally clauses are executed and the called function is ended.
-"-------------------------------------------------------------------------------
-
-XpathINIT
-
-function! F()
-    try
-	Xpath 1					" X: 1
-	try
-	    Xpath 2				" X: 2
-	    return
-	    Xpath 4				" X: 0
-	finally
-	    Xpath 8				" X: 8
-	endtry
-	Xpath 16				" X: 0
-    finally
-	Xpath 32				" X: 32
-    endtry
-    Xpath 64					" X: 0
-endfunction
-
-function! G()
-    try
-	Xpath 128				" X: 128
-	return
-	Xpath 256				" X: 0
-    finally
-	Xpath 512				" X: 512
-	call F()
-	Xpath 1024				" X: 1024
-    endtry
-    Xpath 2048					" X: 0
-endfunction
-
-function! H()
-    try
-	Xpath 4096				" X: 4096
-	call G()
-	Xpath 8192				" X: 8192
-    finally
-	Xpath 16384				" X: 16384
-	return
-	Xpath 32768				" X: 0
-    endtry
-    Xpath 65536					" X: 0
-endfunction
-
-try
-    Xpath 131072				" X: 131072
-    call H()
-    Xpath 262144				" X: 262144
-finally
-    Xpath 524288				" X: 524288
-endtry
-Xpath 1048576					" X: 1048576
-
-Xcheck 1996459
-
-" Leave F, G, and H for execution as scripts in the next test.
-
-
-"-------------------------------------------------------------------------------
-" Test 28:  Executing :finally clauses after :finish			    {{{1
-"
-"	    For a :finish command dynamically enclosed in a :try/:endtry region,
-"	    :finally clauses are executed and the sourced file is finished.
-"
-"	    This test executes the bodies of the functions F, G, and H from the
-"	    previous test as script files (:return replaced by :finish).
-"-------------------------------------------------------------------------------
-
-XpathINIT
-
-let scriptF = MakeScript("F")			" X: 1 + 2 + 8 + 32
-let scriptG = MakeScript("G", scriptF)		" X: 128 + 512 + 1024
-let scriptH = MakeScript("H", scriptG)		" X: 4096 + 8192 + 16384
-
-try
-    Xpath 131072				" X: 131072
-    exec "source" scriptH
-    Xpath 262144				" X: 262144
-finally
-    Xpath 524288				" X: 524288
-endtry
-Xpath 1048576					" X: 1048576
-
-call delete(scriptF)
-call delete(scriptG)
-call delete(scriptH)
-unlet scriptF scriptG scriptH
-delfunction F
-delfunction G
-delfunction H
-
-Xcheck 1996459
-
-
-"-------------------------------------------------------------------------------
-" Test 29:  Executing :finally clauses on errors			    {{{1
-"
-"	    After an error in a command dynamically enclosed in a :try/:endtry
-"	    region, :finally clauses are executed and the script processing is
-"	    terminated.
-"-------------------------------------------------------------------------------
-
-XpathINIT
-
-if ExtraVim()
-    function! F()
-	while 1
-	    try
-		Xpath 1				" X: 1
-		while 1
-		    try
-			Xpath 2			" X: 2
-			asdf	    " error
-			Xpath 4			" X: 0
-		    finally
-			Xpath 8			" X: 8
-		    endtry | Xpath 16		" X: 0
-		    Xpath 32			" X: 0
-		    break
-		endwhile
-		Xpath 64			" X: 0
-	    finally
-		Xpath 128			" X: 128
-	    endtry | Xpath 256			" X: 0
-	    Xpath 512				" X: 0
-	    break
-	endwhile
-	Xpath 1024				" X: 0
-    endfunction
-
-    while 1
-	try
-	    Xpath 2048				" X: 2048
-	    while 1
-		call F()
-		Xpath 4096			" X: 0
-		break
-	    endwhile  | Xpath 8192		" X: 0
-	    Xpath 16384				" X: 0
-	finally
-	    Xpath 32768				" X: 32768
-	endtry | Xpath 65536			" X: 0
-    endwhile | Xpath 131072			" X: 0
-    Xpath 262144				" X: 0
-endif
-
-if ExtraVim()
-    function! G() abort
-	if 1
-	    try
-		Xpath 524288			" X: 524288
-		asdf	    " error
-		Xpath 1048576			" X: 0
-	    finally
-		Xpath 2097152			" X: 2097152
-	    endtry | Xpath 4194304		" X: 0
-	endif | Xpath 8388608			" X: 0
-	Xpath 16777216				" X: 0
-    endfunction
-
-    if 1
-	try
-	    Xpath 33554432			" X: 33554432
-	    call G()
-	    Xpath 67108864			" X: 0
-	finally
-	    Xpath 134217728			" X: 134217728
-	endtry | Xpath 268435456		" X: 0
-    endif | Xpath 536870912			" X: 0
-    Xpath 1073741824				" X: 0
-endif
-
-Xcheck 170428555
-
-
-"-------------------------------------------------------------------------------
-" Test 30:  Executing :finally clauses on interrupt			    {{{1
-"
-"	    After an interrupt in a command dynamically enclosed in
-"	    a :try/:endtry region, :finally clauses are executed and the
-"	    script processing is terminated.
-"-------------------------------------------------------------------------------
-
-XpathINIT
-
-if ExtraVim()
-    XloopINIT 1 16
-
-    function! F()
-	try
-	    Xloop 1				" X: 1 + 1*16
-	    "INTERRUPT
-	    Xloop 2				" X: 0
-	finally
-	    Xloop 4				" X: 4 + 4*16
-	endtry
-	Xloop 8					" X: 0
-    endfunction
-
-    try
-	Xpath 256				" X: 256
-	try
-	    Xpath 512				" X: 512
-	    "INTERRUPT
-	    Xpath 1024				" X: 0
-	finally
-	    Xpath 2048				" X: 2048
-	    try
-		Xpath 4096			" X: 4096
-		try
-		    Xpath 8192			" X: 8192
-		finally
-		    Xpath 16384			" X: 16384
-		    try
-			Xpath 32768		" X: 32768
-			"INTERRUPT
-			Xpath 65536		" X: 0
-		    endtry
-		    Xpath 131072		" X: 0
-		endtry
-		Xpath 262144			" X: 0
-	    endtry
-	    Xpath 524288			" X: 0
-	endtry
-	Xpath 1048576				" X: 0
-    finally
-	Xpath 2097152				" X: 2097152
-	try
-	    Xpath 4194304			" X: 4194304
-	    call F()
-	    Xpath 8388608			" X: 0
-	finally
-	    Xpath 16777216			" X: 16777216
-	    try
-		Xpath 33554432			" X: 33554432
-		XloopNEXT
-		ExecAsScript F
-		Xpath 67108864			" X: 0
-	    finally
-		Xpath 134217728			" X: 134217728
-	    endtry
-	    Xpath 268435456			" X: 0
-	endtry
-	Xpath 536870912				" X: 0
-    endtry
-    Xpath 1073741824				" X: 0
-endif
-
-Xcheck 190905173
-
-
-"-------------------------------------------------------------------------------
-" Test 31:  Executing :finally clauses after :throw			    {{{1
-"
-"	    After a :throw dynamically enclosed in a :try/:endtry region,
-"	    :finally clauses are executed and the script processing is
-"	    terminated.
-"-------------------------------------------------------------------------------
-
-XpathINIT
-
-if ExtraVim()
-    XloopINIT 1 16
-
-    function! F()
-	try
-	    Xloop 1				" X: 1 + 1*16
-	    throw "exception"
-	    Xloop 2				" X: 0
-	finally
-	    Xloop 4				" X: 4 + 4*16
-	endtry
-	Xloop 8					" X: 0
-    endfunction
-
-    try
-	Xpath 256				" X: 256
-	try
-	    Xpath 512				" X: 512
-	    throw "exception"
-	    Xpath 1024				" X: 0
-	finally
-	    Xpath 2048				" X: 2048
-	    try
-		Xpath 4096			" X: 4096
-		try
-		    Xpath 8192			" X: 8192
-		finally
-		    Xpath 16384			" X: 16384
-		    try
-			Xpath 32768		" X: 32768
-			throw "exception"
-			Xpath 65536		" X: 0
-		    endtry
-		    Xpath 131072		" X: 0
-		endtry
-		Xpath 262144			" X: 0
-	    endtry
-	    Xpath 524288			" X: 0
-	endtry
-	Xpath 1048576				" X: 0
-    finally
-	Xpath 2097152				" X: 2097152
-	try
-	    Xpath 4194304			" X: 4194304
-	    call F()
-	    Xpath 8388608			" X: 0
-	finally
-	    Xpath 16777216			" X: 16777216
-	    try
-		Xpath 33554432			" X: 33554432
-		XloopNEXT
-		ExecAsScript F
-		Xpath 67108864			" X: 0
-	    finally
-		Xpath 134217728			" X: 134217728
-	    endtry
-	    Xpath 268435456			" X: 0
-	endtry
-	Xpath 536870912				" X: 0
-    endtry
-    Xpath 1073741824				" X: 0
-endif
-
-Xcheck 190905173
-
-" Tests 32 and 33 were moved to test_trycatch.vim
-let Xtest = 34
-
-
-"-------------------------------------------------------------------------------
-" Test 34:  :finally reason discarded by :continue			    {{{1
-"
-"	    When a :finally clause is executed due to a :continue, :break,
-"	    :return, :finish, error, interrupt or :throw, the jump reason is
-"	    discarded by a :continue in the finally clause.
-"-------------------------------------------------------------------------------
-
-XpathINIT
-
-if ExtraVim()
-
-    XloopINIT! 1 8
-
-    function! C(jump)
-	XloopNEXT
-	let loop = 0
-	while loop < 2
-	    let loop = loop + 1
-	    if loop == 1
-		try
-		    if a:jump == "continue"
-			continue
-		    elseif a:jump == "break"
-			break
-		    elseif a:jump == "return" || a:jump == "finish"
-			return
-		    elseif a:jump == "error"
-			asdf
-		    elseif a:jump == "interrupt"
-			"INTERRUPT
-			let dummy = 0
-		    elseif a:jump == "throw"
-			throw "abc"
-		    endif
-		finally
-		    continue	" discards jump that caused the :finally
-		    Xloop 1		" X: 0
-		endtry
-		Xloop 2			" X: 0
-	    elseif loop == 2
-		Xloop 4			" X: 4*(1+8+64+512+4096+32768+262144)
-	    endif
-	endwhile
-    endfunction
-
-    call C("continue")
-    Xpath 2097152				" X: 2097152
-    call C("break")
-    Xpath 4194304				" X: 4194304
-    call C("return")
-    Xpath 8388608				" X: 8388608
-    let g:jump = "finish"
-    ExecAsScript C
-    unlet g:jump
-    Xpath 16777216				" X: 16777216
-    try
-	call C("error")
-	Xpath 33554432				" X: 33554432
-    finally
-	Xpath 67108864				" X: 67108864
-	try
-	    call C("interrupt")
-	    Xpath 134217728			" X: 134217728
-	finally
-	    Xpath 268435456			" X: 268435456
-	    call C("throw")
-	    Xpath 536870912			" X: 536870912
-	endtry
-    endtry
-    Xpath 1073741824				" X: 1073741824
-
-    delfunction C
-
-endif
-
-Xcheck 2146584868
-
-
-"-------------------------------------------------------------------------------
-" Test 35:  :finally reason discarded by :break				    {{{1
-"
-"	    When a :finally clause is executed due to a :continue, :break,
-"	    :return, :finish, error, interrupt or :throw, the jump reason is
-"	    discarded by a :break in the finally clause.
-"-------------------------------------------------------------------------------
-
-XpathINIT
-
-if ExtraVim()
-
-    XloopINIT! 1 8
-
-    function! B(jump)
-	XloopNEXT
-	let loop = 0
-	while loop < 2
-	    let loop = loop + 1
-	    if loop == 1
-		try
-		    if a:jump == "continue"
-			continue
-		    elseif a:jump == "break"
-			break
-		    elseif a:jump == "return" || a:jump == "finish"
-			return
-		    elseif a:jump == "error"
-			asdf
-		    elseif a:jump == "interrupt"
-			"INTERRUPT
-			let dummy = 0
-		    elseif a:jump == "throw"
-			throw "abc"
-		    endif
-		finally
-		    break	" discards jump that caused the :finally
-		    Xloop 1		" X: 0
-		endtry
-	    elseif loop == 2
-		Xloop 2			" X: 0
-	    endif
-	endwhile
-	Xloop 4				" X: 4*(1+8+64+512+4096+32768+262144)
-    endfunction
-
-    call B("continue")
-    Xpath 2097152				" X: 2097152
-    call B("break")
-    Xpath 4194304				" X: 4194304
-    call B("return")
-    Xpath 8388608				" X: 8388608
-    let g:jump = "finish"
-    ExecAsScript B
-    unlet g:jump
-    Xpath 16777216				" X: 16777216
-    try
-	call B("error")
-	Xpath 33554432				" X: 33554432
-    finally
-	Xpath 67108864				" X: 67108864
-	try
-	    call B("interrupt")
-	    Xpath 134217728			" X: 134217728
-	finally
-	    Xpath 268435456			" X: 268435456
-	    call B("throw")
-	    Xpath 536870912			" X: 536870912
-	endtry
-    endtry
-    Xpath 1073741824				" X: 1073741824
-
-    delfunction B
-
-endif
-
-Xcheck 2146584868
-
-
-"-------------------------------------------------------------------------------
-" Test 36:  :finally reason discarded by :return			    {{{1
-"
-"	    When a :finally clause is executed due to a :continue, :break,
-"	    :return, :finish, error, interrupt or :throw, the jump reason is
-"	    discarded by a :return in the finally clause.
-"-------------------------------------------------------------------------------
-
-XpathINIT
-
-if ExtraVim()
-
-    XloopINIT! 1 8
-
-    function! R(jump, retval) abort
-	XloopNEXT
-	let loop = 0
-	while loop < 2
-	    let loop = loop + 1
-	    if loop == 1
-		try
-		    if a:jump == "continue"
-			continue
-		    elseif a:jump == "break"
-			break
-		    elseif a:jump == "return"
-			return
-		    elseif a:jump == "error"
-			asdf
-		    elseif a:jump == "interrupt"
-			"INTERRUPT
-			let dummy = 0
-		    elseif a:jump == "throw"
-			throw "abc"
-		    endif
-		finally
-		    return a:retval	" discards jump that caused the :finally
-		    Xloop 1			" X: 0
-		endtry
-	    elseif loop == 2
-		Xloop 2				" X: 0
-	    endif
-	endwhile
-	Xloop 4					" X: 0
-    endfunction
-
-    let sum =  -R("continue", -8)
-    Xpath 2097152				" X: 2097152
-    let sum = sum - R("break", -16)
-    Xpath 4194304				" X: 4194304
-    let sum = sum - R("return", -32)
-    Xpath 8388608				" X: 8388608
-    try
-	let sum = sum - R("error", -64)
-	Xpath 16777216				" X: 16777216
-    finally
-	Xpath 33554432				" X: 33554432
-	try
-	    let sum = sum - R("interrupt", -128)
-	    Xpath 67108864			" X: 67108864
-	finally
-	    Xpath 134217728			" X: 134217728
-	    let sum = sum - R("throw", -256)
-	    Xpath 268435456			" X: 268435456
-	endtry
-    endtry
-    Xpath 536870912				" X: 536870912
-
-    let expected = 8 + 16 + 32 + 64 + 128 + 256
-    if sum != expected
-	Xpath 1073741824			" X: 0
-	Xout "sum =" . sum . ", expected: " . expected
-    endif
-
-    unlet sum expected
-    delfunction R
-
-endif
-
-Xcheck 1071644672
-
-
-"-------------------------------------------------------------------------------
-" Test 37:  :finally reason discarded by :finish			    {{{1
-"
-"	    When a :finally clause is executed due to a :continue, :break,
-"	    :return, :finish, error, interrupt or :throw, the jump reason is
-"	    discarded by a :finish in the finally clause.
-"-------------------------------------------------------------------------------
-
-XpathINIT
-
-if ExtraVim()
-
-    XloopINIT! 1 8
-
-    function! F(jump)	" not executed as function, transformed to a script
-	XloopNEXT
-	let loop = 0
-	while loop < 2
-	    let loop = loop + 1
-	    if loop == 1
-		try
-		    if a:jump == "continue"
-			continue
-		    elseif a:jump == "break"
-			break
-		    elseif a:jump == "finish"
-			finish
-		    elseif a:jump == "error"
-			asdf
-		    elseif a:jump == "interrupt"
-			"INTERRUPT
-			let dummy = 0
-		    elseif a:jump == "throw"
-			throw "abc"
-		    endif
-		finally
-		    finish	" discards jump that caused the :finally
-		    Xloop 1			" X: 0
-		endtry
-	    elseif loop == 2
-		Xloop 2				" X: 0
-	    endif
-	endwhile
-	Xloop 4					" X: 0
-    endfunction
-
-    let scriptF = MakeScript("F")
-    delfunction F
-
-    let g:jump = "continue"
-    exec "source" scriptF
-    Xpath 2097152				" X: 2097152
-    let g:jump = "break"
-    exec "source" scriptF
-    Xpath 4194304				" X: 4194304
-    let g:jump = "finish"
-    exec "source" scriptF
-    Xpath 8388608				" X: 8388608
-    try
-	let g:jump = "error"
-	exec "source" scriptF
-	Xpath 16777216				" X: 16777216
-    finally
-	Xpath 33554432				" X: 33554432
-	try
-	    let g:jump = "interrupt"
-	    exec "source" scriptF
-	    Xpath 67108864			" X: 67108864
-	finally
-	    Xpath 134217728			" X: 134217728
-	    try
-		let g:jump = "throw"
-		exec "source" scriptF
-		Xpath 268435456			" X: 268435456
-	    finally
-		Xpath 536870912			" X: 536870912
-	    endtry
-	endtry
-    endtry
-    unlet g:jump
-
-    call delete(scriptF)
-    unlet scriptF
-
-endif
-
-Xcheck 1071644672
-
-
-"-------------------------------------------------------------------------------
-" Test 38:  :finally reason discarded by an error			    {{{1
-"
-"	    When a :finally clause is executed due to a :continue, :break,
-"	    :return, :finish, error, interrupt or :throw, the jump reason is
-"	    discarded by an error in the finally clause.
-"-------------------------------------------------------------------------------
-
-XpathINIT
-
-if ExtraVim()
-
-    XloopINIT! 1 4
-
-    function! E(jump)
-	XloopNEXT
-	let loop = 0
-	while loop < 2
-	    let loop = loop + 1
-	    if loop == 1
-		try
-		    if a:jump == "continue"
-			continue
-		    elseif a:jump == "break"
-			break
-		    elseif a:jump == "return" || a:jump == "finish"
-			return
-		    elseif a:jump == "error"
-			asdf
-		    elseif a:jump == "interrupt"
-			"INTERRUPT
-			let dummy = 0
-		    elseif a:jump == "throw"
-			throw "abc"
-		    endif
-		finally
-		    asdf	" error; discards jump that caused the :finally
-		endtry
-	    elseif loop == 2
-		Xloop 1				" X: 0
-	    endif
-	endwhile
-	Xloop 2					" X: 0
-    endfunction
-
-    try
-	Xpath 16384				" X: 16384
-	call E("continue")
-	Xpath 32768				" X: 0
-    finally
-	try
-	    Xpath 65536				" X: 65536
-	    call E("break")
-	    Xpath 131072			" X: 0
-	finally
-	    try
-		Xpath 262144			" X: 262144
-		call E("return")
-		Xpath 524288			" X: 0
-	    finally
-		try
-		    Xpath 1048576		" X: 1048576
-		    let g:jump = "finish"
-		    ExecAsScript E
-		    Xpath 2097152		" X: 0
-		finally
-		    unlet g:jump
-		    try
-			Xpath 4194304		" X: 4194304
-			call E("error")
-			Xpath 8388608		" X: 0
-		    finally
-			try
-			    Xpath 16777216	" X: 16777216
-			    call E("interrupt")
-			    Xpath 33554432	" X: 0
-			finally
-			    try
-				Xpath 67108864	" X: 67108864
-				call E("throw")
-				Xpath 134217728	" X: 0
-			    finally
-				Xpath 268435456	" X: 268435456
-				delfunction E
-			    endtry
-			endtry
-		    endtry
-		endtry
-	    endtry
-	endtry
-    endtry
-    Xpath 536870912				" X: 0
-
-endif
-
-Xcheck 357908480
-
-
-"-------------------------------------------------------------------------------
-" Test 39:  :finally reason discarded by an interrupt			    {{{1
-"
-"	    When a :finally clause is executed due to a :continue, :break,
-"	    :return, :finish, error, interrupt or :throw, the jump reason is
-"	    discarded by an interrupt in the finally clause.
-"-------------------------------------------------------------------------------
-
-XpathINIT
-
-if ExtraVim()
-
-    XloopINIT! 1 4
-
-    function! I(jump)
-	XloopNEXT
-	let loop = 0
-	while loop < 2
-	    let loop = loop + 1
-	    if loop == 1
-		try
-		    if a:jump == "continue"
-			continue
-		    elseif a:jump == "break"
-			break
-		    elseif a:jump == "return" || a:jump == "finish"
-			return
-		    elseif a:jump == "error"
-			asdf
-		    elseif a:jump == "interrupt"
-			"INTERRUPT
-			let dummy = 0
-		    elseif a:jump == "throw"
-			throw "abc"
-		    endif
-		finally
-		    "INTERRUPT - discards jump that caused the :finally
-		    let dummy = 0
-		endtry
-	    elseif loop == 2
-		Xloop 1				" X: 0
-	    endif
-	endwhile
-	Xloop 2					" X: 0
-    endfunction
-
-    try
-	Xpath 16384				" X: 16384
-	call I("continue")
-	Xpath 32768				" X: 0
-    finally
-	try
-	    Xpath 65536				" X: 65536
-	    call I("break")
-	    Xpath 131072			" X: 0
-	finally
-	    try
-		Xpath 262144			" X: 262144
-		call I("return")
-		Xpath 524288			" X: 0
-	    finally
-		try
-		    Xpath 1048576		" X: 1048576
-		    let g:jump = "finish"
-		    ExecAsScript I
-		    Xpath 2097152		" X: 0
-		finally
-		    unlet g:jump
-		    try
-			Xpath 4194304		" X: 4194304
-			call I("error")
-			Xpath 8388608		" X: 0
-		    finally
-			try
-			    Xpath 16777216	" X: 16777216
-			    call I("interrupt")
-			    Xpath 33554432	" X: 0
-			finally
-			    try
-				Xpath 67108864	" X: 67108864
-				call I("throw")
-				Xpath 134217728	" X: 0
-			    finally
-				Xpath 268435456	" X: 268435456
-				delfunction I
-			    endtry
-			endtry
-		    endtry
-		endtry
-	    endtry
-	endtry
-    endtry
-    Xpath 536870912				" X: 0
-
-endif
-
-Xcheck 357908480
-
-
-"-------------------------------------------------------------------------------
-" Test 40:  :finally reason discarded by :throw				    {{{1
-"
-"	    When a :finally clause is executed due to a :continue, :break,
-"	    :return, :finish, error, interrupt or :throw, the jump reason is
-"	    discarded by a :throw in the finally clause.
-"-------------------------------------------------------------------------------
-
-XpathINIT
-
-if ExtraVim()
-
-    XloopINIT! 1 4
-
-    function! T(jump)
-	XloopNEXT
-	let loop = 0
-	while loop < 2
-	    let loop = loop + 1
-	    if loop == 1
-		try
-		    if a:jump == "continue"
-			continue
-		    elseif a:jump == "break"
-			break
-		    elseif a:jump == "return" || a:jump == "finish"
-			return
-		    elseif a:jump == "error"
-			asdf
-		    elseif a:jump == "interrupt"
-			"INTERRUPT
-			let dummy = 0
-		    elseif a:jump == "throw"
-			throw "abc"
-		    endif
-		finally
-		    throw "xyz"	" discards jump that caused the :finally
-		endtry
-	    elseif loop == 2
-		Xloop 1				" X: 0
-	    endif
-	endwhile
-	Xloop 2					" X: 0
-    endfunction
-
-    try
-	Xpath 16384				" X: 16384
-	call T("continue")
-	Xpath 32768				" X: 0
-    finally
-	try
-	    Xpath 65536				" X: 65536
-	    call T("break")
-	    Xpath 131072			" X: 0
-	finally
-	    try
-		Xpath 262144			" X: 262144
-		call T("return")
-		Xpath 524288			" X: 0
-	    finally
-		try
-		    Xpath 1048576		" X: 1048576
-		    let g:jump = "finish"
-		    ExecAsScript T
-		    Xpath 2097152		" X: 0
-		finally
-		    unlet g:jump
-		    try
-			Xpath 4194304		" X: 4194304
-			call T("error")
-			Xpath 8388608		" X: 0
-		    finally
-			try
-			    Xpath 16777216	" X: 16777216
-			    call T("interrupt")
-			    Xpath 33554432	" X: 0
-			finally
-			    try
-				Xpath 67108864	" X: 67108864
-				call T("throw")
-				Xpath 134217728	" X: 0
-			    finally
-				Xpath 268435456	" X: 268435456
-				delfunction T
-			    endtry
-			endtry
-		    endtry
-		endtry
-	    endtry
-	endtry
-    endtry
-    Xpath 536870912				" X: 0
-
-endif
-
-Xcheck 357908480
-
-" Tests 41 to 48 were moved to test_trycatch.vim
-let Xtest = 49
-
-
-"-------------------------------------------------------------------------------
-" Test 49:  Throwing exceptions across functions			    {{{1
-"
-"	    When an exception is thrown but not caught inside a function, the
-"	    caller is checked for a matching :catch clause.
-"-------------------------------------------------------------------------------
-
-XpathINIT
-
-function! C()
-    try
-	Xpath 1					" X: 1
-	throw "arrgh"
-	Xpath 2					" X: 0
-    catch /arrgh/
-	Xpath 4					" X: 4
-    endtry
-    Xpath 8					" X: 8
-endfunction
-
-XloopINIT! 16 16
-
-function! T1()
-    XloopNEXT
-    try
-	Xloop 1					" X: 16 + 16*16
-	throw "arrgh"
-	Xloop 2					" X: 0
-    finally
-	Xloop 4					" X: 64 + 64*16
-    endtry
-    Xloop 8					" X: 0
-endfunction
-
-function! T2()
-    try
-	Xpath 4096				" X: 4096
-	call T1()
-	Xpath 8192				" X: 0
-    finally
-	Xpath 16384				" X: 16384
-    endtry
-    Xpath 32768					" X: 0
-endfunction
-
-try
-    Xpath 65536					" X: 65536
-    call C()	" throw and catch
-    Xpath 131072				" X: 131072
-catch /.*/
-    Xpath 262144				" X: 0
-    Xout v:exception "in" v:throwpoint
-endtry
-
-try
-    Xpath 524288				" X: 524288
-    call T1()  " throw, one level
-    Xpath 1048576				" X: 0
-catch /arrgh/
-    Xpath 2097152				" X: 2097152
-catch /.*/
-    Xpath 4194304				" X: 0
-    Xout v:exception "in" v:throwpoint
-endtry
-
-try
-    Xpath 8388608				" X: 8388608
-    call T2()	" throw, two levels
-    Xpath 16777216				" X: 0
-catch /arrgh/
-    Xpath 33554432				" X: 33554432
-catch /.*/
-    Xpath 67108864				" X: 0
-    Xout v:exception "in" v:throwpoint
-endtry
-Xpath 134217728					" X: 134217728
-
-Xcheck 179000669
-
-" Leave C, T1, and T2 for execution as scripts in the next test.
-
-
-"-------------------------------------------------------------------------------
-" Test 50:  Throwing exceptions across script files			    {{{1
-"
-"	    When an exception is thrown but not caught inside a script file,
-"	    the sourcing script or function is checked for a matching :catch
-"	    clause.
-"
-"	    This test executes the bodies of the functions C, T1, and T2 from
-"	    the previous test as script files (:return replaced by :finish).
-"-------------------------------------------------------------------------------
-
-XpathINIT
-
-let scriptC = MakeScript("C")			" X: 1 + 4 + 8
-delfunction C
-
-XloopINIT! 16 16
-
-let scriptT1 = MakeScript("T1")			" X: 16 + 64 + 16*16 + 64*16
-delfunction T1
-
-let scriptT2 = MakeScript("T2", scriptT1)	" X: 4096 + 16384
-delfunction T2
-
-function! F()
-    try
-	Xpath 65536				" X: 65536
-	exec "source" g:scriptC
-	Xpath 131072				" X: 131072
-    catch /.*/
-	Xpath 262144				" X: 0
-	Xout v:exception "in" v:throwpoint
-    endtry
-
-    try
-	Xpath 524288				" X: 524288
-	exec "source" g:scriptT1
-	Xpath 1048576				" X: 0
-    catch /arrgh/
-	Xpath 2097152				" X: 2097152
-    catch /.*/
-	Xpath 4194304				" X: 0
-	Xout v:exception "in" v:throwpoint
-    endtry
-endfunction
-
-try
-    Xpath 8388608				" X: 8388608
-    call F()
-    Xpath 16777216				" X: 16777216
-    exec "source" scriptT2
-    Xpath 33554432				" X: 0
-catch /arrgh/
-    Xpath 67108864				" X: 67108864
-catch /.*/
-    Xpath 134217728				" X: 0
-    Xout v:exception "in" v:throwpoint
-endtry
-Xpath 268435456					" X: 268435456
-
-call delete(scriptC)
-call delete(scriptT1)
-call delete(scriptT2)
-unlet scriptC scriptT1 scriptT2
-delfunction F
-
-Xcheck 363550045
-
-" Test 51 was moved to test_trycatch.vim
+" Tests 1 to 50, 87 were moved to test_vimscript.vim
+" Tests 25, 26, 32, 33, 41-48, 51, 69-75 were moved to test_trycatch.vim
 let Xtest = 52
 
-
 "-------------------------------------------------------------------------------
 " Test 52:  Uncaught exceptions						    {{{1
 "