Вам наверняка приходилось работать с линтерами, минификаторами или бандлерами. Все они так или иначе работают с кодом, не запуская его. Магия, работающая под капотом таких инструментов, называется статическим анализом кода. И именно об этой магии мы и поговорим: как и чем разбирать код JS; как потом собрать его обратно; какие возможности это даёт и на какие косяки можно напороться, когда вы захотите написать свой собственный код на JS, работающий с кодом на JS.