summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/testdir/test_vim9_script.vim35
-rw-r--r--src/version.c2
-rw-r--r--src/vim9execute.c4
3 files changed, 39 insertions, 2 deletions
diff --git a/src/testdir/test_vim9_script.vim b/src/testdir/test_vim9_script.vim
index 40833c51c..4d83a4e8f 100644
--- a/src/testdir/test_vim9_script.vim
+++ b/src/testdir/test_vim9_script.vim
@@ -3988,6 +3988,41 @@ def Test_vim9_autoload()
&rtp = save_rtp
enddef
+" test disassembling an auto-loaded function starting with "debug"
+def Test_vim9_autoload_disass()
+ mkdir('Xdir/autoload', 'p')
+ var save_rtp = &rtp
+ exe 'set rtp^=' .. getcwd() .. '/Xdir'
+
+ var lines =<< trim END
+ vim9script
+ def debugit#test(): string
+ return 'debug'
+ enddef
+ END
+ writefile(lines, 'Xdir/autoload/debugit.vim')
+
+ lines =<< trim END
+ vim9script
+ def profileit#test(): string
+ return 'profile'
+ enddef
+ END
+ writefile(lines, 'Xdir/autoload/profileit.vim')
+
+ lines =<< trim END
+ vim9script
+ assert_equal('debug', debugit#test())
+ disass debugit#test
+ assert_equal('profile', profileit#test())
+ disass profileit#test
+ END
+ CheckScriptSuccess(lines)
+
+ delete('Xdir', 'rf')
+ &rtp = save_rtp
+enddef
+
" test using a vim9script that is auto-loaded from an autocmd
def Test_vim9_aucmd_autoload()
var lines =<< trim END
diff --git a/src/version.c b/src/version.c
index 54baf7b16..0d00f207d 100644
--- a/src/version.c
+++ b/src/version.c
@@ -754,6 +754,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 3746,
+/**/
3745,
/**/
3744,
diff --git a/src/vim9execute.c b/src/vim9execute.c
index 2908e55c7..adfb9207c 100644
--- a/src/vim9execute.c
+++ b/src/vim9execute.c
@@ -5904,12 +5904,12 @@ ex_disassemble(exarg_T *eap)
int is_global = FALSE;
compiletype_T compile_type = CT_NONE;
- if (STRNCMP(arg, "profile", 7) == 0)
+ if (STRNCMP(arg, "profile", 7) == 0 && VIM_ISWHITE(arg[7]))
{
compile_type = CT_PROFILE;
arg = skipwhite(arg + 7);
}
- else if (STRNCMP(arg, "debug", 5) == 0)
+ else if (STRNCMP(arg, "debug", 5) == 0 && VIM_ISWHITE(arg[5]))
{
compile_type = CT_DEBUG;
arg = skipwhite(arg + 5);