Я искал способ отследить значение локальных и глобальных переменных программы в Javascript. РЕДАКТИРОВАТЬ / дополнительная информация: Эта программа уже была написана, поэтому я задним числом добавляю это отслеживание состояния. Мне нужно иметь доступ к текущему или последнему значению любой переменной в программе (даже в случай, когда функция, содержащая его, завершила работу). Мой текущий план заключается в следующем:
Создать AST и добавить все переменные из него в глобальный объект "обработчик состояний". Каждая переменная получит уникальное имя записи в объекте, так что переменная x
в функции foo()
будет отличаться от другой переменной x
в функции bar()
.
Каждый раз, когда переменная обновляется во всей программе, обновляйте также значение переменной в объекте поддержки состояния.
Я буду вставлять код в файл JS, который Я пытаюсь отслеживать значения для того, чтобы сделать это.
Я буду следить за ссылочными назначениями и распространять изменения во всех затронутых переменных, когда это применимо. Например, когда a
обновляется ниже, b
также должно обновляться.
var a = 'foo'
var b = a
a = 'bar'
Имеет ли этот подход смысл? Существуют ли другие технические соображения, на которые я должен обратить особое внимание? Есть ли библиотеки, которые уже реализуют эту функцию?