Tati is a javascript library that makes it possible to debug, step,
pause and watch local variables in javascript code without using the built-in
runtime inspector. It can even step into the for loop test and update statements
or follow the execution inside try-catch blocks and arrow functions. Tati
is even able to run the code in a separate worker and debug it from the main
thread.
Tati provides methods to define, modify and access runtime context and mask
global variables even the globalThis, so the interaction between the debugged
script and the environment can be controlled precisely.
Debugging using Tati is different from using the internal inspector (and
perhaps from any other debugger on the planet!), as with Tati the runtime isn't
paused on breakpoints. So the code is basically running but a part of it is
selectively stepped through, paused and analyzed.
Another aspect of Tati is the possibility of having multiple debuggers
running on different parts of the script, each having their own breakpoints,
watches, and each may be paused separately. See the dual debugger example for
more details.
Tati can be used in debugging, testing, online development environments,
and even education. The API is designed to make things as easy as possible
while keeping it powerful and flexible.