❌Как дебажить вызовы платформенных методов
Иногда в вашем проекте вызывается глобальная функция вроде window.reload или localStorage.removeItem, которая мешает жить. Однако вы не можете понять, откуда именно она вызывается, а поставить брейкпойнт не получится — ведь ее нет в вашем коде. Можно легко отловить стектрейс, если переопределись ее прямо в рантайме, в консоли браузера, например, так:
localStorage.removeItem = console.trace;
Или даже так:
localStorage.removeItem = (key) => { console.trace(key); debugger };
Также таким способом можно легко логать какую-нибудь аналитику, если она у вас вынесена в глобальную область видимости:
window.sendMetrics = console.log;
🔜 Канал в MAX
#дебаг
Иногда в вашем проекте вызывается глобальная функция вроде window.reload или localStorage.removeItem, которая мешает жить. Однако вы не можете понять, откуда именно она вызывается, а поставить брейкпойнт не получится — ведь ее нет в вашем коде. Можно легко отловить стектрейс, если переопределись ее прямо в рантайме, в консоли браузера, например, так:
localStorage.removeItem = console.trace;
Или даже так:
localStorage.removeItem = (key) => { console.trace(key); debugger };
Также таким способом можно легко логать какую-нибудь аналитику, если она у вас вынесена в глобальную область видимости:
window.sendMetrics = console.log;
🔜 Канал в MAX
#дебаг