Inspect your JavaScript in hex.
safe · secure · no server · works offline · fast
…or just start typing at the cursor.
safe · secure · no server · works offline · fast
…or just start typing at the cursor.
Drop a .js file and OmniViewer shows its exact bytes in a
hex view: offsets down the left, hexadecimal in the middle,
and a decoded ASCII panel on the right. It reads only the bytes needed to paint
the screen, so it opens a 20 GB bundle as readily as a snippet, all in your
browser.
Hex is where you catch what a formatter hides: a UTF-8 byte-order
mark that trips a strict loader, smart quotes or a non-breaking space
pasted into a string, CRLF vs LF line endings, or a
zero-width character lurking in an identifier. The same drop also formats the
code, transforms it, and reports stats.
It’s one lens on OmniViewer’s JavaScript File Viewer — Format & Deobfuscate .js: drop a file and every tab is one click away. OmniViewer opens every file format, entirely in your browser — no upload, no server.
No. OmniViewer is a static page with no server-side processing: your .js file is read directly by your browser, and every tab — formatting, compressor, deobfuscator, obfuscator and stats — runs locally in a Web Worker. The file never leaves your computer.
The raw and hex views are windowed — they read only the bytes needed to paint the screen — so they open files of effectively unlimited size, up to 20 GB and beyond; the engine behind them has been tested in-browser with a 40 GB file. The formatted view and the whole-file tools (compressor, deobfuscator, obfuscator, stats) transform the file in memory, so on very large files they work on a bounded prefix and tell you when they do. The parseability check above the view is skipped past a size threshold for the same reason.
The compressor shrinks a file by removing comments and unnecessary whitespace while preserving line breaks, so the code stays valid and behaves identically. The obfuscator goes further: it minifies and then rewrites every text string as \x hex escapes, so the strings are no longer human-readable — useful for making a file harder to skim, not for real security.
It beautifies minified or packed code — one statement per line, proper indentation, and string escapes decoded back to readable characters — which makes the vast majority of minified bundles readable again. It does not rename mangled variables back to their originals (that information is gone once a minifier discards it), and it works at the token level rather than fully parsing, so unusual code may need a second pass.
JavaScript the language is standardised as ECMAScript in the ECMA-262 specification, maintained by the TC39 committee at Ecma International — not as an IETF RFC. Related data formats do have RFCs; JSON, for instance, is defined in RFC 8259. OmniViewer has a dedicated JSON viewer too, at fastjsonviewer.com.
JavaScript is dynamically typed and runs directly in browsers and in Node with no build step. TypeScript adds static types and compiles down to JavaScript. Java is statically typed and runs on the JVM, and is common in enterprise and Android software. Rust is statically typed, compiles to native code and manages memory through ownership without a garbage collector, which suits systems and performance-critical work. The page above has a side-by-side table.
Brendan Eich created it at Netscape in 1995, reportedly in about ten days. It first shipped as LiveScript and was renamed JavaScript for marketing reasons; it is unrelated to Java. It was later standardised as ECMAScript, with the influential ES2015 (ES6) edition arriving in 2015 and a new edition every year since.