What Reached Stage 2?
TC39 now has a Stage 2 draft for JSON.parseImmutable(). The proposal adds a JSON parsing path that produces ECMAScript Records for JSON objects and Tuples for JSON arrays, while preserving the usual primitive JSON values.
The proposal repository describes the problem as ergonomic and efficient creation of a deeply immutable data structure from a JSON string. Instead of parsing into mutable objects and arrays and then converting every nested value with a reviver, the draft would give that workflow a dedicated JSON API.
Why Immutable JSON Values Matter
JSON payload debugging often starts with a snapshot: an API response, a fixture, or a structured value pasted into a browser tool for inspection. Immutable values are useful when the code around that snapshot should not accidentally rewrite nested data while it is being compared, cached, or passed between transforms.
That is relevant to browser-first tooling because JSON parsing already happens locally in the tab. A direct immutable parse path would let future developer tools keep inspection and validation workflows closer to the data shape they intend to protect, without adding a custom deep-conversion step after every parse.
How the Draft Handles Parsing
The draft keeps JSON.parseImmutable() tied to the JSON grammar. It says a conforming implementation must not extend that grammar, so the API is aimed at standard JSON text rather than JavaScript object-literal conveniences.
It also spells out reviver differences from JSON.parse(). The reviver receivesundefined as its this value, and returning undefinedfor a Tuple element keeps an undefined value instead of creating an Array hole. Those details matter for tools that depend on predictable post-parse traversal.
What Tool Authors Should Do Now
Stage 2 means TC39 has a preferred draft direction, but the process document also says the design can still change significantly and may never reach the standard. That makes this a proposal to watch, not an API that browser utilities should assume is available today.
The near-term work remains the same: keep using the JSON APIs that browsers already ship, preserve local handling for sensitive payloads, and track the immutable parsing proposal if your application currently pays for repeated deep conversion after parsing.