Firefox 78 includes a new RegExp evaluator, bringing it up to date with the requirements of ECMAScript 2018, and enhanced support for WebAssembly.
It only seems like yesterday that we reported Developer Tool Improvements In Firefox 77, but as Firefox 78 is an Extended Support Release (ESR) it merits renewed coverage. Mozilla provides a new Extended Support Release for enterprise users once a year and it includes all of the enhancements since the last ESR, in this case Firefox 68, together with the latest features.
As far as users are concerned, the Protections Dashboard, a screen which shows trackers and scripts that are blocked for improved privacy, is the headline feature of Firefox 78. For developers there’s quite a lot more on offer.
With its updated RegExp engine, Firefox now supports all new regular expression features introduced in ECMAScript 2018, including the
dotAll flag, Unicode property escapes, named capture groups and lookbehind (positive and negative) assertions, which make it possible to find patterns that are (or are not) preceded by another pattern. In the example below a negative lookbehind is used to match a number only if it is not preceded by a minus sign. A positive lookbehind would match values not preceded by a minus sign:
With regard to WebAssembly, Wasm Multi-value is now supported, meaning that WebAssembly functions can now return multiple values, and instruction sequences can consume and produce multiple stack values. In addition WebAssembly now supports import and export of 64-bit integer function parameters (i64) using
Another enhancement in Firefox 78 that caught my attention is that logpoints, a type of breakpoint that writes a message to the console rather than pausing execution, can now map variable names in source-mapped code back to their original names, To use this feature and enable the “Map” option in the Debugger’s “Scopes” pane.
The Accessibility inspector, a tab in the developer tools that, when enabled, will check a page for accessibility issues is, finally out of beta.
In Firefox’s pre-release channel, the Developer Edition, there’s new functionality to better support async stacks in the Console and Debugger, extending stacks with information about the events, timers, and promises that lead the execution of a specific line of code. It is expected that this features will be enabled across all release channels in Firefox 79.