Перехватывать все вызовы функций в javascript - PullRequest
2 голосов
/ 24 апреля 2020

То, что я хотел бы сделать, это перехватывать все вызовы функций в javascript, либо если они созданы new Function, либо function.

Другими словами, возможно, сделать прокси для всех функции, которые будут созданы. Выполнить некоторый код перед начальным кодом функции.

Итак, мои вопросы:

  1. есть ли способ сделать это?

  2. есть ли способ изменить функцию .прототип ? Это встроенный с настраиваемым: ложь. Можно ли это изменить.

  3. Я пытаюсь сделать это в электронном виде, чтобы я мог изменить флаги для V8, включить эксперименты

  4. Можно ли это сделать с помощью встроенной функции включен с флагом --allow_natives_syntax?

  5. Есть ли способ изменить внутренний [[Call]]?

Я знаю обо всех причинах почему я не должен этого делать Меня интересует только то, как это можно сделать.

1 Ответ

2 голосов
/ 24 апреля 2020
  1. Есть ли способ сделать это?

Нет.

есть ли способ изменить Function.prototype? Это встроенный с настраиваемым: ложь. Можно ли это изменить?

Нет.

Можно ли это сделать с помощью встроенной функции с флагом --allow_natives_syntax?

Нет.

Есть ли способ изменить внутренний [[Call]]?

Нет.

Если вы просто заинтересованы в отслеживании вызовов функций, вы можете использовать V8 существующий флаг --trace. Невозможно воспроизвести эту функцию в JavaScript (иначе этот флаг не будет существовать).

...