diff --git a/runtime/autoload/dist/vimindent.vim b/runtime/autoload/dist/vimindent.vim
index 0681496..37f2ee5 100644
--- a/runtime/autoload/dist/vimindent.vim
+++ b/runtime/autoload/dist/vimindent.vim
@@ -2,7 +2,7 @@
 
 # Language:     Vim script
 # Maintainer:   github user lacygoill
-# Last Change:  2024 Dec 26
+# Last Change:  2025 Apr 13
 #
 # Includes changes from The Vim Project:
 #  - 2024 Feb 09: Fix indent after literal Dict (A. Radev via #13966)
@@ -981,8 +981,10 @@
     if end == '[' || end == ']'
         e = e->escape('[]')
     endif
+    # VIM_INDENT_TEST_TRACE_START
     return searchpair('\C' .. s, (middle == '' ? '' : '\C' .. middle), '\C' .. e,
         flags, (): bool => InCommentOrString(), stopline, TIMEOUT)
+    # VIM_INDENT_TEST_TRACE_END dist#vimindent#SearchPair
 enddef
 
 def SearchPairStart( # {{{3
@@ -1268,7 +1270,9 @@
 
     var pos: list<number> = getcurpos()
     cursor(line.lnum, 1)
+    # VIM_INDENT_TEST_TRACE_START
     var match_lnum: number = search(pat, 'cnW', line.lnum, TIMEOUT, (): bool => InCommentOrString())
+    # VIM_INDENT_TEST_TRACE_END dist#vimindent#NonCommentedMatch
     setpos('.', pos)
     return match_lnum > 0
 enddef
diff --git a/runtime/autoload/python.vim b/runtime/autoload/python.vim
index d5f4862..cf01198 100644
--- a/runtime/autoload/python.vim
+++ b/runtime/autoload/python.vim
@@ -20,10 +20,12 @@
 let s:maxoff = 50       " maximum number of lines to look backwards for ()
 
 function s:SearchBracket(fromlnum, flags)
+  " VIM_INDENT_TEST_TRACE_START
   return searchpairpos('[[({]', '', '[])}]', a:flags,
           \ {-> synstack('.', col('.'))
           \ ->indexof({_, id -> synIDattr(id, 'name') =~ '\%(Comment\|Todo\|String\)$'}) >= 0},
           \ [0, a:fromlnum - s:maxoff]->max(), g:python_indent.searchpair_timeout)
+  " VIM_INDENT_TEST_TRACE_END python#s:SearchBracket
 endfunction
 
 " See if the specified line is already user-dedented from the expected value.
diff --git a/runtime/indent/html.vim b/runtime/indent/html.vim
index 2fa10cc..671a4d1 100644
--- a/runtime/indent/html.vim
+++ b/runtime/indent/html.vim
@@ -1,7 +1,7 @@
 " Vim indent script for HTML
 " Maintainer:	The Vim Project <https://github.com/vim/vim>
 " Original Author: Andy Wokula <anwoku@yahoo.de>
-" Last Change:	2023 Aug 13
+" Last Change:	2025 Apr 13
 " Version:	1.0 "{{{
 " Description:	HTML indent script with cached state for faster indenting on a
 "		range of lines.
@@ -868,7 +868,9 @@
   let idx = match(getline(a:lnum), '\S>\s*$')
   if idx > 0
     call cursor(a:lnum, idx)
+    " VIM_INDENT_TEST_TRACE_START
     let lnum = searchpair('<\w', '' , '\S>', 'bW', '', max([a:lnum - b:html_indent_line_limit, 0]))
+    " VIM_INDENT_TEST_TRACE_END HtmlIndent_FindTagStart
     if lnum > 0
       return [lnum, 1]
     endif
@@ -903,7 +905,9 @@
     call search('--\zs>')
   elseif s:get_tag('/' . tagname) != 0
     " tag with a closing tag, find matching "</tag>"
+    " VIM_INDENT_TEST_TRACE_START
     call searchpair('<' . tagname, '', '</' . tagname . '\zs>', 'W', '', line('.') + b:html_indent_line_limit)
+    " VIM_INDENT_TEST_TRACE_END HtmlIndent_FindTagEnd
   else
     " self-closing tag, find the ">"
     call search('\S\zs>')
diff --git a/runtime/indent/javascript.vim b/runtime/indent/javascript.vim
index 8077442..6537d3f 100644
--- a/runtime/indent/javascript.vim
+++ b/runtime/indent/javascript.vim
@@ -2,7 +2,7 @@
 " Language: Javascript
 " Maintainer: Chris Paul ( https://github.com/bounceme )
 " URL: https://github.com/pangloss/vim-javascript
-" Last Change: December 4, 2017
+" Last Change: 2025 Apr 13
 
 " Only load this indent file when no other was loaded.
 if exists('b:did_indent')
@@ -69,7 +69,9 @@
 " searchpair() wrapper
 if s:rel
   function s:GetPair(start,end,flags,skip)
+    " VIM_INDENT_TEST_TRACE_START
     return searchpair('\m'.a:start,'','\m'.a:end,a:flags,a:skip,s:l1,a:skip ==# 's:SkipFunc()' ? 2000 : 200)
+    " VIM_INDENT_TEST_TRACE_END s:GetPair
   endfunction
 else
   function s:GetPair(start,end,flags,skip)
