Anyway, I am using the <<repeat>> macro because I have real-time reloading, which requires a repeated timer.
It is likely that your real-time reloading occurs based on the end-user (player) selecting an option in-game, that option should instigate the updating of the screen instead of using a <<repeat>> macro like the following: (your previous example)
<<repeat 0.1s>><<set $CurrentWeapon = `"$" + $CurrentWeapon["Name"]`>><</repeat>>
Timer Based Event Handlers (like one created by the <<repeat>> macro) interrupt the end-user's ability to interact with the page every time the related timer event fires, and that interruption lasts for the time it takes to process the code related to that timer event.
Eg. In your example the interruption would occur every 10th of a second (or 10 times every second) and that interruption would last for the time it took to execute the code: to determine the value of `"$" + $CurrentWeapon["Name"]` and to update the $CurrentWeapon variable.
In general a Timer Based Event Handler is not the best way to update a page, especial if the update occurs as a result of a manual interaction made by the end-user or as the result of some background code, and if the usage of Timer Based Event Handlers is really required then they should be used sparingly. (eg. only one Timer Based Event Handler per page).