The latest release of Safari, version 18.4, includes support for three TC39 proposals, two in Stage 3 and one in Stage 4, marking another step forward for JavaScript developers targeting Apple’s browser.
JavaScript evolves through a standardized proposal process managed by TC39, the technical committee behind ECMAScript. Proposals advance through five stages (0–4), with Stage 3 indicating a feature is stable and ready for implementation, and Stage 4 marking full inclusion in the official language specification.
Newly supported proposals:#
Iterator Helpers (Stage 4)
Iterator Helpers is one of the most notable additions, having reached Stage 4 in the TC39 process. It is now part of the finalized ECMAScript specification.
This feature enables more efficient handling of large data sets through lazy evaluation, meaning you don't need to load all data into memory at once. The Safari version 18.4 announcement explores this new feature with a practical example of the new methods which have been added in this update.
Safari is the last major browser to add support for iterator helpers, closing a significant gap in JavaScript language feature coverage and bringing full cross-browser support to a long-anticipated part of the ECMAScript standard.
Error.isError (Stage 3)
The second ECMAScript feature added to Safari 18.4 is Error.isError
, which has reached Stage 3 in the TC39 process. This new method provides a reliable way to identify genuine Error objects.
In JavaScript, it can sometimes be challenging to determine if an object is truly an Error instance. This method standardizes error identification, allowing developers to normalize error handling more effectively across their applications and ensuring proper error management regardless of how the error was generated.
Atomics.pause (Stage 3)
The third feature is Atomics.pause
, another Stage 3 proposal. This addition allows programs using spin-wait loops to signal to the CPU that they're waiting on a value and still spinning.
This might seem like a small addition, but it can lead to significant performance improvements in certain scenarios by allowing the CPU to optimize resource usage when code is waiting for values to change in shared memory contexts.
Browsers Race to Support Modern JavaScript#
Safari 18.4 is part of a growing trend: browser vendors increasingly announce when they ship new JavaScript features, especially those progressing through the TC39 proposal process. Chrome, Firefox, and now Safari regularly promote their ECMAScript support, recognizing that modern developers closely follow this evolution.
This shift reflects how JavaScript has changed in recent years. New language features often go from proposal to production in a matter of months, and developers are eager to use them without relying on build tools or polyfills. Stage 3 proposals are generally considered stable and ready for early adoption, while Stage 4 proposals are fully standardized and safe to use.
By supporting Iterator Helpers, now finalized in the spec, and previewing others like Error.isError
and Atomics.pause
, Safari continues to close the gap with V8 and SpiderMonkey, and signals a more active role in modern JavaScript development.
In addition to the JavaScript feature updates, Safari 18.4 includes 84 new features across the web platform, including Declarative Web Push, support for WebM in MediaRecorder, and a host of new CSS, HTML, and Web API improvements.