Chi Tsai
all · built 2026-09-08
Performance
What Chi Tsai shipped in the selected window, measured in ETV, and how it compares with the 90 days before it.
Effective capacity
−1.0engineers
delivers like 0.0 (0.0x pre-AI)
Output (ETV)
0.0ETV
−100.0% vs 2.7 prior
Features share
0.0%
−83.5 pp vs prior window
Fixes share
0.0%
−0.7 pp vs prior window
Work mix
0% Features0% Maintenance0% Tests0% Docs0% Fixes
0 commits over 90 days, ending 2026-09-08.
Repository spread
Where this developer's commits land. Concentrated work (top1 > 80%) vs polymath spread (top1 < 30%).
| Repo | Commits | ETV |
|---|---|---|
| hermes | 42 | 6.0 |
| react-native | 23 | 2.8 |
Most impactful commits
Top 10 by ETV across all time.
- 0.7ETVAdd intermediate state for the Hermes Root API Summary: This diff adds the Hermes Root API interface, but keeps the static functions within HermesRuntime still. This is a necessary intermediate step for RN ([see failing tests here](https://github.com/facebook/react-native/actions/runs/14800547982/job/41558052598?pr=51082)), which depends on the version of Hermes that is on `main`, which does not have the Root API yet. Once this lands, we can land the next diff in the stack that migrates all the usages to `makeHermesRootAPI`, and remove all the static methods from `HermesRuntime`. Reviewed By: neildhar Differential Revision: D74594455 fbshipit-source-id: 7db62051082e3384b0f5215a2262cda58208db9fgithub.com-facebook-hermes · 3abf653c · 2025-05-14
- 0.5ETVAdd `TypedArray`, `UInt8Array` in JSI (#56158) Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/56158 Add TypedArray and Uint8Array types to JSI with supporting APIs. New types: - `TypedArray`: Base class for all typed arrays - `Uint8Array`: Uint8Array type extending TypedArray New IRuntime APIs: - `getBuffer(TypedArray)`: Get underlying ArrayBuffer - `getByteOffset(TypedArray)`: Get byte offset property - `getByteLength(TypedArray)`: Get byte length property - `getLength(TypedArray)`: Get length property - `createUint8Array(size_t)`: Create Uint8Array with length - `createUint8Array(ArrayBuffer, offset, length)`: Create from ArrayBuffer - `isUint8Array(Object)`: Check if object is Uint8Array Changelog: [Internal] Reviewed By: lavenzg Differential Revision: D95245175 fbshipit-source-id: 33e7f5d9de42bfcc0b7a57c681fdd73711c2bb13github.com-facebook-react-native · 572e6619 · 2026-04-15
- 0.5ETVAdd `TypedArray`, `UInt8Array` in JSI Summary: X-link: https://github.com/facebook/react-native/pull/56158 Add TypedArray and Uint8Array types to JSI with supporting APIs. New types: - `TypedArray`: Base class for all typed arrays - `Uint8Array`: Uint8Array type extending TypedArray New IRuntime APIs: - `getBuffer(TypedArray)`: Get underlying ArrayBuffer - `getByteOffset(TypedArray)`: Get byte offset property - `getByteLength(TypedArray)`: Get byte length property - `getLength(TypedArray)`: Get length property - `createUint8Array(size_t)`: Create Uint8Array with length - `createUint8Array(ArrayBuffer, offset, length)`: Create from ArrayBuffer - `isUint8Array(Object)`: Check if object is Uint8Array Changelog: [Internal] Reviewed By: lavenzg Differential Revision: D95245175 fbshipit-source-id: 33e7f5d9de42bfcc0b7a57c681fdd73711c2bb13github.com-facebook-hermes · 5f82b877 · 2026-04-15
- 0.3ETVUse IHermes, use shared_ptr<jsi::Runtime> in Synth Traces in all other version of Hermes Summary: Cast into `IHermes` in Synth Traces when Hermes-specific runtime functionalities are used, instead of performing `dynamic_cast` While we are here, also updated all unique_ptr usages of `jsi::Runtime` to shared_ptr. Reviewed By: neildhar Differential Revision: D73525167 fbshipit-source-id: 8aab275bc4fa3fd1f5c34f162710296859af9096github.com-facebook-hermes · 3cc0974e · 2025-05-15
- 0.3ETVAdd JSI APIs `setRuntimeData` and `getRuntimeData` (#50197) Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/50197 Adds `setRuntimeData` and `getRuntimeData` JSI APIs. This provides a convenient way for users to store some custom data associated with an UUID. For the default implementation of this feature, store the runtime data in the global map that is shared between all VMs. This is done to keep JSI lightweight and stateless, instead of adding data members. Changelog: [Internal] Reviewed By: neildhar Differential Revision: D71579532 fbshipit-source-id: 553e28fbf80c93e268d475860197a00d2c5bacf7github.com-facebook-react-native · 891ee78f · 2025-05-10
- 0.3ETVAdd JSI APIs `setRuntimeData` and `getRuntimeData` Summary: X-link: https://github.com/facebook/react-native/pull/50197 Adds `setRuntimeData` and `getRuntimeData` JSI APIs. This provides a convenient way for users to store some custom data associated with an UUID. For the default implementation of this feature, store the runtime data in the global map that is shared between all VMs. This is done to keep JSI lightweight and stateless, instead of adding data members. Changelog: [Internal] Reviewed By: neildhar Differential Revision: D71579532 fbshipit-source-id: 553e28fbf80c93e268d475860197a00d2c5bacf7github.com-facebook-hermes · 34b807b9 · 2025-05-10
- 0.3ETVAdd SynthTrace support for has/get/setProperty with Value as property name Summary: Add SynthTrace support for has/get/setProperty with Value as property name so it can be recorded and replayed. Grafted a06e173f6238156e41a437919fee0cc9a556d6e3 (D80826389) - Grafted xplat/static_h to xplat/hermes Reviewed By: lavenzg Differential Revision: D81332809 fbshipit-source-id: ae97d9cb1fa4b808c19a187dacb1883674079a2fgithub.com-facebook-hermes · e81b3f33 · 2025-09-04
- 0.3ETVAdd deleteProperty support to Synth Traces Summary: Adds Synth Trace record and support for `deleteProperty` API so that it can be recorded and replayed. Grafted ea07908273fe5d3e7b5105c4d692dc9fdd7decef (D80375910) - Grafted xplat/static_h to xplat/hermes Reviewed By: lavenzg Differential Revision: D81332811 fbshipit-source-id: 4377a98ec74971efa8bbf659531dc14b7d7d086bgithub.com-facebook-hermes · a3521fb0 · 2025-08-29
- 0.3ETVFix JSI `isArray` method to match JS `Array.isArray` Summary: There is currently an assumption that JSI arrays are always `vm::JSArrays`, and thus JSI method `isArray` only return true if it is an `vm::JSArray` . However, the JSI spec states `isArray` should follow JS `Array.isArray`. This diff fixes this and treats `JSI::Array` as normal objects. Grafted 1b61dd500b2b3bdab4771663672c375d7ed1b7d6 (D67408956) - Grafted xplat/static_h to xplat/hermes Reviewed By: lavenzg Differential Revision: D82322325 fbshipit-source-id: 382eab6d67401281727b1bf27fdc7c0bbabc9fc4github.com-facebook-hermes · 7a3c2a3e · 2025-10-01
- 0.3ETVAdd Value override for has/get/setProperty Summary: X-link: https://github.com/facebook/react-native/pull/52910 For `get/has/setProperty`, we should also be able to take in a generic JS Value as the property key. This change adds the Value overload for these APIs. The default implementation will use `Reflect.get`, `Reflect.has`, and `Reflect.set`. Changelog: [Internal] Reviewed By: lavenzg Differential Revision: D79120823 fbshipit-source-id: 7e2e5ff1ca93397c549e7dd922797fe77aa97940github.com-facebook-hermes · 7f716de4 · 2025-08-29