[HermesV1] Sync JSI from Aug 29th to Jan 14th#1878
Merged
cipolleschi merged 3 commits into250829098.0.0-stablefrom Jan 14, 2026
Merged
[HermesV1] Sync JSI from Aug 29th to Jan 14th#1878cipolleschi merged 3 commits into250829098.0.0-stablefrom
cipolleschi merged 3 commits into250829098.0.0-stablefrom
Conversation
Summary: X-link: facebook/react-native#54547 We want to have a proper way of releasing new JSI features, rather than releasing into JSI as they are added. To do this, we are adding a new `JSI_UNSTABLE` flag that will gate new features. Until Hermes releases a new version, all of these "unstable" features are subject to change. Interfaces may be modified, API behavior may be changed, etc. When Hermes release a new version, the new additions will be moved out of the "unstable" status and become frozen. This diff adds the `JSI_UNSTABLE` flag to JSI and adds corresponding changes to the BUCK build. Later diffs will use this gate new APIs. Changelog: [Internal] Reviewed By: lavenzg Differential Revision: D85915163 fbshipit-source-id: b2f754af4bb53db8dfe837e3ea2e2543d691754d
Summary: `jsi.h` uses types like `uint32_t` but never includes `<cstdint>`. Changelog: [Internal] Reviewed By: avp Differential Revision: D87953504 fbshipit-source-id: 7d10e458ff14b01da293f2714d6a562958f9e8ff
Summary: X-link: facebook/react-native#52624 Add a new optional interface `ISerialization` to JSI. This interface contains four APIs to clone objects from one runtime to another runtime. Four methods are introduced in this interface: * `serialize`: Takes in a JS value (represented by `jsi::Value`) and serialize the value into an opaque `Serialized` object. * `deserialize`: Takes in the `Serialized` object created by `serialize` and deserialize it into the runtime, returning the created JS value. * `serializeWithTransfer`: Takes in a JS value (represented by `jsi::Value`) and a `transferList` (a `jsi::Array` of `jsi::Value`s). This will serialize the `value` into an opaque `Serialize` object and transfer the ownership of everything in `transferList` into the `Serialized` object. If any non-transferable values is passed into the transferList, this will throw. This `Serialized` object must only be deserialized once. * `deserializeWithTransfer`: Takes in the `Serialized` object created by `serializeWithTransfer`. It will deserialize the object into the runtime and any value owned by the `Serialized` object will now be owned by the current runtime. It will return an `jsi::Array` where the first value is the deserialized value passed into `serializeWithTransfer`, followed by all transferred values. The lifetime of the `Serialized` object created from the APIs is independent of the original object and runtime. Note that objects can only be copied into another runtime instance of the same type. For example, a serialized object produced by the Hermes runtime can only be deserialized by another Hermes runtime. Changelog: [Internal] Reviewed By: dannysu, fbmal7 Differential Revision: D76547681 fbshipit-source-id: 0c774f3f469c26d3894cac179f4ce5e32cf5ad7f
43f83dd to
1dffa48
Compare
cortinico
approved these changes
Jan 14, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
This PR syncs JSI with the latest commits that landed on static_h:
Test Plan
GHA