2.2.0
LatestJavaScript runs as a real page script
The JavaScript editor’s code runs as its own top-level script:
constandletdeclarations are visible to inline handlers likeonclick="greet()",'use strict'works, a trailing//comment no longer breaks the whole script, and errors point at the editor’s own line numbers.Safer saving
- Undo can no longer empty a freshly loaded editor.
- An idle second tab no longer overwrites newer work from another tab.
- Emptied editors stay empty after a reload.
- Blocked or full browser storage is reported instead of breaking the app.
Full-code layout keeps your document
The full-code document is saved and previewed exactly as written, including attributes on
<html>and<body>, script types and script positions.Infinite-loop recovery
If a run never finished, for example an infinite loop that froze the tab, it isn’t run again on the next start, and Auto-run is paused until you press Run.
Preview fixes
- Forms in the preview can be submitted.
- JSON-LD, template and module scripts are no longer merged into the JavaScript.
- Stale console lines from the previous run are dropped.
- The preview no longer adds styles of its own, so it matches downloaded files.
Import and export fixes
- A ZIP export can be imported again without nesting documents or loading files twice.
- Multi-file import says which files it skipped.
Interface fixes
- Ctrl/Cmd + Enter in an editor only runs the code.
- The theme icon keeps updating.
- Dialogs return focus to the menu that opened them.
- Console colors meet WCAG AA contrast.
- Dark mode applies before the first paint.
- Pane sizes survive layout changes.
Integrity
Split.js, Lucide and JSZip are loaded with Subresource Integrity hashes.
