Skip to content
Compare
Choose a tag to compare

This release is primarily made to close the gap between the Hermes cut and the (upcoming) React Native 0.66 cut. Among the ~400 commits, we kept delivering memory and size wins, bugfixes, and made other progress behind the scene.

Compare
Choose a tag to compare

In preparation for the RN 0.65 stable release, several refinements had been made upon v0.8.0:

  • Hermes on iOS now supports Apple M1 Macs (ARM64 simulators) and Mac Catalyst! Thanks to #546 and #475.
  • A special directive "show source" is introduced to make Function.prototype.toString returning original source code to support the source code injecting use cases e.g. #114.
  • Critical bug fixes e.g. #513 and #537.
Compare
Choose a tag to compare

v0.8.0 for RN 0.65.x

Pre-release
Pre-release

This is a release candidate targeting the upcoming RN 0.65 release.

Highlighted Changes

  • A new concurrent garbage collector "Hades", which delivered up to 30x shorter GC pause time on 64-bit device and 14x shorter on 32-bit devices. At Facebook, we saw this improve some CPU-intensive workloads by 20%-50%. You can learn more about Hades here.
  • ECMAScript Internationalization API Specification (ECMA-402, or Intl) was a long asking features #23 (comment). It is now built into Hermes on Android and enabled by default, with only 57-62K per API size overhead (compared to JSC's 6MiB). With this change, Hermes users no longer require locale polyfills. A big thank you to @mganandraj and other partners at Microsoft for driving the implementation to make this happen!
  • Memory Improvements including SMI (Small Integer) and pointer compression that shrank the JavaScript heap by 30%
  • Changes to Function.prototype.toString that fixed performance drop due to improper feature detection: #471 (comment)
564c64b
Compare
Choose a tag to compare

This release adds macOS ARM64 support to 0.5.x branch for RN macOS v0.63.x (#390 by @alloy).

NOTE: this release is only available for the Darwin platform (i.e. this version only exists at hermes-engine-darwin but not hermes-engine). Please use 0.5.1 or 0.5.2-rc1 (with Proxy enabled) for other platforms.

Compare
Choose a tag to compare
Pre-release

This is (still) a pre-release driven by community PRs to support using Hermes on more platforms at RN 0.64. Noted that ongoing from this release, we will publish hermes-runtime-darwin to the CocoaPod in place of publishing hermes-engine-darwin to NPM.

Compare
Choose a tag to compare
Pre-release

This is a pre-release targeting the upcoming RN 0.64 branch out. It bring ~150 commits of improvements, security and bug fixes, and supports for other mobile platforms and ARM64 thanks to the community.

From this version, Proxy and Reflect will be enabled by default 🎉 , after being an optional feature in two releases.

Compare
Choose a tag to compare

This release is a drop-in replacement for v0.5.0 and v0.5.1 in react-native 0.63.x with Proxy and Reflect enabled by default. It's the follow-up of v0.4.2-rc1 on opting-in Proxy support (#33).

To help with debugging crashes that observed on v0.4.2-rc1, we are now shipping unstripped Android libraries as well. You can now following the new instruction to better report such native crashes.

Please let us know your experiences! We need your help to move the Proxy into the stable channel!

EDIT: From the feedbacks at #33, 0.5.2-rc1 seem to be stable enough. Noted that (thanks for the discussion at #459) there isn't another stable release made for 0.5.x lines with Proxy enabled. We've enabled Proxy by default at 0.7.0 for RN 0.64 and people at RN 0.63 wanting Proxy can directly use hermes-engine@v0.5.2-rc1.