У меня есть библиотека, включенная через <script>
, которая добавляет себя к объекту window
, а затем сразу получает ссылку в следующем <script>
, то есть:
<script src="lib.js"></script>
<script>
var foo = new LIB.SomeClass();
LIB.doStuff();
....
</script>
Для профилированиятеперь мне нужно прикрепить прокси к нескольким свойствам этой библиотеки / глобального LIB
объекта до следующего скрипта (так до LIB.SomeClass()
в приведенном выше).
Все это имеетпроизойти программно - я не могу полагаться на жестко запрограммированные номера строк и не могу изменить lib.js
для запуска фиктивного события, как только все будет инициализировано.
Мой текущий подход:
- Дождитесь события
Debugger.scriptParsed
для lib.js
- Посмотрите, сколько строк в файле
lib.js
(event.endLine
) - Поместите точку останова прямо напоследняя строка
lib.js
(Debugger.setBreakpointByUrl({lineNumber: ...})
- Перезагрузите страницу, ожидая срабатывания
Debugger.paused
- Установите прокси в обработчике
Debugger.paused
Но это кажется излишне запутанным, особенно перезагрузка ощущается как плохой взлом.
Question:
Есть ли способ ввести мой код инструментария сразу после Debugger.scriptParsed
, но все еще гарантированно до загрузки следующего скрипта?
Я пытался вызвать Debugger.pause
в обработчике scriptParsed
, ноэто слишком ненадежно и просто привело к частым гонкам.
Спасибо.