You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Hermes base equivalence check now decodes HBC v98 literals per instruction. Builds with hermes-compiler (React Native 0.87+) previously fell back to comparing the dumped literal buffers as a whole, which the buffer builder's overlapping literals make unreliable — good delta builds could be rejected and shipped as a plain compile. The v98 layout (shared literal value buffer, object key buffer, object shape table) is now read from the binary, and NewObjectWithBuffer / NewObjectWithBufferAndParent are compared through the shape table. In differential fuzzing on RN 0.87's hermesc, false rejections dropped from 259 in 300 rounds to 0 in 800, with every planted difference still caught.
Fixes
The parent register of NewObjectWithBufferAndParent is compared as a register instead of being mistaken for a buffer operand, and the instruction is no longer folded into NewObjectWithBuffer.
Tooling
fuzz:hermes-base no longer reports a planted change as missed when the optimizer removed that code (Static Hermes constant-folds much more than classic hermesc).