GitXplorerGitXplorer
f

hermes

public
10041 stars
649 forks
164 issues

Commits

List of commits on branch main.
Unverified
ed54fd3df836e83d871cc2c957b0c568956d1912

Deploy 0.259.1 to xplat

SSamChou19815 committed a day ago
Unverified
be20bcb322987168f27bde0a0c6e0a56205f2d15

Deploy 0.259.0 to fbsource

ppieterv committed 2 days ago
Unverified
fd6a281b1b45c45fc6ee524b94405e6148af0d88

Fix warnings causing test failure

ddannysu committed 3 days ago
Unverified
a942ef374897d85da38e9c8904574f8376555388

Add Hermes implementation for Object.create with prototype

ttsaichien committed 9 days ago
Unverified
9f0b77fc801b1bed97e6097776a6baa1c4ed2e00

Add Hermes implementation for Object.getPrototypeOf and Object.setPrototypeOf

ttsaichien committed 9 days ago
Unverified
c995d195adaf07811cf35d81423a5a4afa7d60cf

Add getStringData and getPropNameIdData implementation for Hermes

ttsaichien committed 9 days ago

README

The README file for this repository.

Hermes JS Engine

MIT license npm version Fuzzing Status PRs Welcome Hermes logo - large H with wings

Hermes is a JavaScript engine optimized for fast start-up of React Native apps. It features ahead-of-time static optimization and compact bytecode.

If you're only interested in using pre-built Hermes in a new or existing React Native app, you do not need to follow this guide or have direct access to the Hermes source. Instead, just follow these instructions to enable Hermes.

Noted that each Hermes release is aimed at a specific RN version. The rule of thumb is to always follow Hermes releases strictly. Version mismatch can result in instant crash of your apps in the worst case scenario.

If you want to know how to build and hack on Hermes directly, and/or integrate Hermes built from source into a React Native app then read on.

The instructions here very briefly cover steps to build the Hermes CLI. They assume you have typical native development tools setup for your OS, and support for cmake and Ninja. For more details of required dependencies, building Hermes with different options, etc. follow these links instead:

To build a local debug version of the Hermes CLI tools the following steps should get you started on macOS/Linux:

mkdir hermes_workingdir
cd hermes_workingdir
git clone https://github.com/facebook/hermes.git
cmake -S hermes -B build -G Ninja
cmake --build ./build

Or if you're using Windows, the following should get you going in a Git Bash shell:

mkdir hermes_workingdir
cd hermes_workingdir
git -c core.autocrlf=false clone https://github.com/facebook/hermes.git
cmake -S hermes -B build -G 'Visual Studio 16 2019' -A x64
cmake --build ./build

You will now be in a directory with the output of building Hermes into CLI tools. From here you can run a piece of JavaScript as follows:

echo "'use strict'; function hello() { print('Hello World'); } hello();" | ./bin/hermes

Contributing

The main purpose of this repository is to continue to evolve Hermes, making it faster and more efficient. We are grateful to the community for contributing bugfixes and improvements. Read below to learn how you can take part in improving Hermes.

Code of Conduct

Facebook has adopted a Code of Conduct that we expect project participants to adhere to. Please read the full text so that you can understand what actions will and will not be tolerated.

Contributing Guide

Read our contributing guide to learn about our development process, how to propose bugfixes and improvements, and how to build and test your changes to Hermes.

License

Hermes is MIT licensed.