JavaScript переводчик (поддержка ES2015) - PullRequest
2 голосов
/ 13 апреля 2020

Я пытаюсь создать приложение 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 методы, которые могут помочь мне в этом.

Есть идеи?

...