Я пытаюсь создать приложение JavaScript "визуализатор", поэтому мне нужна информация о stati c и динамичности c.
Например, с учетом этого фрагмента кода:
class Foo{
constructor(prop){
this.props = prop;
}
}
const x = new Foo('prop');
Я хотел бы иметь возможность "пошагово" пройти по этому коду и получить что-то вроде AST, включая стек вызовов, переменную среду и результаты вызовов функций.
Разбор его с помощью желудя или другие парсеры дадут мне stati c AST, что здорово, но, очевидно, не предоставит необходимую мне динамическую c информацию, такую как стек вызовов (при вызове функции) и возвращаемые значения et c.
Я использовал JS -Interpreter и это именно то, что мне нужно, но только позже я обнаружил, что ему не хватает поддержки функций ES2015, что является для меня преградой. Я подумал, может быть, запустить мой код ES2015 через babel.transform
и передать преобразованный код ES5 в JS -Inprepreter , а затем использовать исходные карты, чтобы каким-то образом изменить преобразование, но не уверен, как именно это сделать.
Я даже подумал, что, возможно, API расширения отладчика Chrome мог бы помочь мне (поскольку devtools имеет большую часть того, что мне нужно), но не смог увидеть какие-либо публичные c методы, которые могут помочь мне в этом.
Есть идеи?