Hermes

Hermes, the Default JavaScript Engine

Hermes 11,328 is the JavaScript engine Meta built for React Native 36,878 , announced in July 2019. Where browser engines parse source on the device and rely on just-in-time (JIT) compilers, Hermes compiles JavaScript to bytecode at build time, so a release app starts executing with no parsing, and it has no JIT, which saves memory. Hermes has been the default since React Native 0.70; Hermes V1, with a reworked compiler and virtual machine, became the default in 0.84 after an experimental release that loaded bundles 3.2% faster on Android and 9% faster on iOS. JavaScriptCore now lives in a community package.

Gradle 19,597 and Xcode 10 run the compiler for you, but it ships in every project's node_modules, so you can try it on a four-line price.js that sums BookNest cart prices with reduce():

Compiling a file to Hermes bytecode with the project's own hermesc (Linux)JSX
HERMESC=node_modules/hermes-compiler/hermesc/linux64-bin/hermesc
$HERMESC -version | grep -E 'release|bytecode'
$HERMESC -O -emit-binary -out price.hbc price.js
ls -l price.js price.hbc
Output
  Hermes release version: 1.0.0
  HBC bytecode version: 98
-rw-r--r-- 1 dev dev 635 Sep 23 21:51 price.hbc
-rwxr-xr-x 1 dev dev 141 Sep 23 21:51 price.js

The version line confirms Hermes V1 in an Expo SDK 57 6,418 project. Skipping the parse shortens every cold start, but debug builds load plain JavaScript from Metro, so measure startup on a release build.