JavaScript Checker Example Report — Errors, Performance & Security
This example shows the AIPageSEO JavaScript Checker for a SaaS application. The report finds 14 issues including 3 console.log statements in production, a synchronous XHR that blocks the main thread for 200ms, an eval() call that is a security risk and 2 event listeners never removed.
eval() used — security risk — line 1,847
eval() executes arbitrary code and is an XSS attack vector if any user input reaches it. Replace with JSON.parse() for data parsing. Remove or refactor immediately.
Synchronous XHR blocking main thread — line 234
new XMLHttpRequest() called with async:false blocks all JavaScript execution until the request completes. This freezes the UI for 200–800ms. Replace with fetch() or async XHR.
document.write() in production code — line 567
document.write() after page load blocks the HTML parser and replaces the entire document on some browsers. It is deprecated and disallowed by the Content Security Policy on modern sites. Remove and use DOM manipulation instead.
Async function without try/catch — line 892
An async function runs without error handling. Unhandled rejections will be swallowed silently. Wrap the function body in try/catch and handle errors explicitly.
3 console.log() calls in production — lines 124, 445, 1,203
console.log() in production code exposes internal data in the browser console. Remove all debugging statements before deployment.
2 addEventListener without corresponding removeEventListener
Event listeners added in component setup code are never removed, causing memory leaks when components are unmounted. Always pair addEventListener with removeEventListener in cleanup.
setInterval without clearInterval on unmount
A polling interval is started on page load and never cleared. This runs indefinitely, wasting CPU cycles and potentially causing errors if the callback references unmounted DOM elements.
Large script file — 847KB unminified (line 1)
The main bundle is 847KB unminified. Minification would reduce this to approximately 280KB. Code splitting would allow non-critical code to load after initial render.
Related Demo Reports
Run JavaScript Checker on Your Own Site
Get your real audit report with specific issues, fixes and actionable improvements — free to start.