Featured in DevOps

Adin Scannell talks about gVisor - a container runtime that implements the Linux kernel API in userspace using Go. He talks about the architectural challenges associated with userspace kernels, the positive and negative experiences with Go as an implementation language, and finally, how to ensure API coverage and compatibility.

Version 7.0 and 7.1 improve support for Embedded builtins, which saves memory by sharing generated code across multiple V8 Isolates. Initially shipped in version 6.9 for x64 platforms, version 7.0 adds support to all supported platforms except ia32. Version 7.1 follows on this work by adding bytecode handlers embedded into the binary.

WebAssembly has also received key improvements in these releases. Version 7.0 adds an early preview of WebAssembly Threads which are enabled by a feature flag: chrome://flags/#enable-webassembly-threads . Websites may also register for an Origin Trial to experiment with new web features before they are fully standardized, which will help the Chrome team gather real-world feedback to validate and improve new features.

V8 version 7.1 adds postMessage support for WebAssembly modules, allowing WebAssembly.Module objects to get sent via postMessage to web workers. Currently this is limited to web workers (same process, different thread) and is not available for cross-process scenarios (cross-origin postMessage or shared web workers).

Several JavaScript language features get included with the latest versions of V8. Version 7.0 adds the description property to Symbol.prototype, giving a more ergonomic mechanism for accessing a Symbol's description. The Symbol description accessor is a stage 3 TC39 proposal and expected to be part of ES2019, next year's version of the JavaScript standard. Performance of Array.prototype.sort also improves with the 7.0 release.

Version 7.1 adds support for Intl.RelativeTimeFormat, an API providing performant localized formatting of relative times (e.g., tomorrow, 25 seconds ago, or in six weeks). Also included with 7.1 is support for the globalThis proposal, a mechanism for accessing the global object when in strict functions or modules, regardless of the underlying platform.

Google creates branch releases of its V8 JavaScript engine every six weeks to coincide with Google Chrome releases. Version 7.0 of V8 ships with Chrome 70 and 7.1 with Chrome 71. V8 also powers the Node.js JavaScript runtime.