Yesterday, the team behind Google Chrome’s JavaScript and WebAssembly engine, V8 announced the release of V8 7.5 beta. As per V8’s release cycle, its stable version will release in coordination with Chrome 75 stable release, which is expected to come out early June. This release comes with WebAssembly implicit caching, bulk memory operations, JavaScript numeric separators for better readability, and more.
Few updates in V8 7.5 Beta
WebAssembly implicit caching
The team is planning to introduce implicit caching of WebAssembly compilation artifacts in Chrome 75, which is similar to Chromium’s JavaScript code cache. Code caching is an important way of optimizing browsers, which reduces the start-up time of commonly visited web pages by caching the result of parsing and compilation.
This essentially means that if a user visits the same web page a second time, the already-seen WebAssembly modules will not be compiled again, and will instead be loaded from the cache.
WebAssembly bulk memory operations
V8 7.5 will come with a few new WebAssembly instructions for updating large regions of memory or tables. The following are some of these instructions:
- memory.fill: It fills a memory region with a given byte.
- memory.copy: It copies data from a source memory region to a destination region, even if these regions overlap.
- table.copy: Similar to memory.copy, it copies from one region of a table to another, even if the regions are overlapping.
JavaScript numeric separators for better readability
The human eye finds it difficult to quickly parse a large numeric literal, especially when it contains long digit repetitions, for instance, 10000000. To improve the readability of long numeric literals, a new feature is added that allows using underscores as a separator creating a visual separation between groups of digits. This feature works with both integers and floating point.
Streaming script source data directly from the network
In previous Chrome versions, the script source data coming in from the network always had to first go to the Chrome main thread before it was forwarded to the streamer. This made the streaming parser to wait for data that has already arrived from the network but hadn’t been forwarded to the streaming task yet because it was blocked at the main thread. Starting from Chrome 75, V8 will be able to stream scripts directly from the network into the streaming parser, without waiting for the Chrome main thread.
To know more, check out the official announcement on V8 Blog.
Read Next
Electron 5.0 ships with new versions of Chromium, V8, and Node.js
Introducing Node.js 12 with V8 JavaScript engine, improved worker threads, and much more
V8 7.2 Beta releases with support for public class fields, well-formed JSON.stringify, and more